using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization.Json; using System.Text; using System.Threading.Tasks; namespace SCJMapper_V2.Layout { class LayoutGroupsJson { // logger private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod( ).DeclaringType ); /// /// Reads from a LayoutGroups file /// /// The Json Filename /// A LayoutGroups obj or null for errors public static LayoutGroups FromJson( string jFilename ) { LayoutGroups c = null; if ( File.Exists( jFilename ) ) { using ( var ts = File.OpenRead( jFilename ) ) { c = FromJson( ts ); } } else { log.Debug( $"LayoutGroups.FromJson: Userfile does not exist ({jFilename})" ); } return c; } /// /// Reads from a LayoutGroups stream /// /// An open stream at position /// A LayoutGroups obj or null for errors public static LayoutGroups FromJson( Stream jStream ) { try { var jsonSerializer = new DataContractJsonSerializer( typeof( LayoutGroups ) ); object objResponse = jsonSerializer.ReadObject( jStream ); var jsonResults = objResponse as LayoutGroups; return jsonResults; } catch ( Exception e ) { log.Debug( $"LayoutGroups.FromJson: Serializer Exception ({e.Message})" ); return null; } } } }