public T GetData <T> () where T : SerializedRoot, new () { if (mLoadedData == null && mLoadProcess != null) { TextReader tr = new StringReader(mLoadProcess.GetContent()); XmlSerializer s = new XmlSerializer(typeof(T)); mLoadedData = s.Deserialize(tr) as T; return(mLoadedData as T); } else { return(null); } }
private void SetUpObjects() { Outer2 = new OuterObjectWithInner2 { Id = 10, ContainedObject = new InnerObject { Value = 11, Content = "Some content" }, Name = "Hello", InnerObject = new InnerObject { Value = 12, Content = "More content" } }; Outer = new OuterObjectWithInner { Id = 10, ContainedObject = new InnerObject { Value = 11, Content = "Some content" }, Name = "Hello", InnerObject = new InnerObject { Value = 12, Content = "More content" } }; Root2 = new SerializedRoot2 { Root = Outer2 }; Root = new SerializedRoot { Root = Outer }; }
public void Load <T> (string pPath) where T : SerializedRoot, new () { mLoadedData = null; mLoadProcess = Storage.Load(pPath); }
public void CreateEmpty <T> () where T : SerializedRoot, new () { mLoadedData = new T(); }
public OperationResult <SerializedRoot> Save(string Filename, SerializationContainer Request) { try { var SettingsResult = SettingsBll.GetSettings(); ValidateResult(SettingsResult); var Settings = SettingsResult.Result; var Result = new OperationResult <SerializedRoot>(); var Root = new SerializedRoot(); Root.AreaId = Request.Area.Id; Root.LoadedESTWs.AddRange(Request.Area.ESTWs.Where(e => e.IsLoaded).Select(e => new SerializedESTW { ESTWId = e.Id, Time = e.Time, StartTime = e.StartTime, IsActive = (DateTime.Now - e.LastUpdatedOn).TotalSeconds < Settings.EstwTimeout, })); Root.Version = Assembly.GetEntryAssembly().GetCustomAttribute <AssemblyInformationalVersionAttribute>()?.InformationalVersion; foreach (var Train in Request.Area.LiveTrains.Values) { var SerializedTrain = new SerializedTrain(); SerializedTrain.TrainNumber = Train.Train.Number; SerializedTrain.Delay = Train.Delay; SerializedTrain.LastModified = Train.LastModified; SerializedTrain.CreatedOn = Train.CreatedOn; SerializedTrain.TrainDirection = Train.Direction; SerializedTrain.IsDestinationStationCancelled = Train.IsDestinationStationCancelled; foreach (var block in Train.BlockHistory) { var serializedBlock = new SerializedBlock(); serializedBlock.EstwId = block.Track.Station.ESTW.Id; serializedBlock.Name = block.Name; serializedBlock.Direction = block.Direction; SerializedTrain.BlockHistory.Add(serializedBlock); } if (Train.Block != null) { SerializedTrain.CurrentEstwId = Train.Block.Track.Station.ESTW.Id; SerializedTrain.Block = Train.Block.Name; SerializedTrain.BlockDirection = Train.Block.Direction; } foreach (var Schedule in Train.Schedules) { var SerializedSchedule = new SerializedSchedule(); SerializedSchedule.EstwId = Schedule.Schedule.Station.ESTW.Id; SerializedSchedule.StationShortSymbol = Schedule.Schedule.Station.ShortSymbol; SerializedSchedule.StationTime = Schedule.Schedule.Time; SerializedSchedule.LiveArrival = Schedule.LiveArrival; SerializedSchedule.LiveDeparture = Schedule.LiveDeparture; SerializedSchedule.IsArrived = Schedule.IsArrived; SerializedSchedule.IsDeparted = Schedule.IsDeparted; SerializedSchedule.ExpectedArrival = Schedule.ExpectedArrival; SerializedSchedule.ExpectedDeparture = Schedule.ExpectedDeparture; SerializedSchedule.ExpectedDelayArrival = Schedule.ExpectedDelayArrival; SerializedSchedule.ExpectedDelayDeparture = Schedule.ExpectedDelayDeparture; SerializedSchedule.IsComposed = Schedule.IsComposed; SerializedSchedule.IsPrepared = Schedule.IsPrepared; SerializedSchedule.IsCancelled = Schedule.IsCancelled; SerializedSchedule.IsManuallyModified = Schedule.IsManuallyModified; if (Schedule.LiveTrack != null) { SerializedSchedule.LiveTrack = Schedule.LiveTrack.Name; } foreach (var Delay in Schedule.Delays) { var SerializedDelay = new SerializedDelay(); SerializedDelay.Type = Delay.Type; SerializedDelay.Minutes = Delay.Minutes; SerializedDelay.Reason = Delay.Reason; SerializedDelay.CausedBy = Delay.CausedBy; SerializedSchedule.Delays.Add(SerializedDelay); } SerializedTrain.Schedules.Add(SerializedSchedule); } Root.LiveTrains.Add(SerializedTrain); } Root.Windows = Request.Windows; Root.VisibleStations = Request.VisibleStations; Root.VisibleTrains = Request.VisibleTrains; Root.HiddenSchedules = Request.HiddenSchedules; using (var Stream = new FileStream(Filename, FileMode.Create, FileAccess.Write)) { m_Formatter.Serialize(Stream, Root); } Result.Result = Root; Result.Succeeded = true; return(Result); } catch (Exception ex) { return(new OperationResult <SerializedRoot> { Message = ex.Message }); } }