/// <summary> /// Подготовка для сохранения. Подсчет общего времени отдыха и проставление ID. /// </summary> private GridForStore PrepareGridForSave(WorkingGrid workingGrid) { GridForStore gridForSave = new GridForStore(); var freeTimeMinutes = workingGrid.FreeTime.Sum(t => t.Duration.TotalMinutes); gridForSave.FreeTime = Convert.ToInt32(Math.Floor(freeTimeMinutes)); gridForSave.Cells = new List <TimeCellForStore>(); int id = 1; foreach (var item in workingGrid.WorkingCells) { gridForSave.Cells.Add( new TimeCellForStore { ID = id++, Start = item.Start, End = item.End } ); } return(gridForSave); }
/// <summary> /// Сохраняем дневную сетку в файл /// </summary> /// <param name="workingGrid"></param> public void SaveWorkingGrid(WorkingGrid workingGrid) { GridForStore gridForSave = PrepareGridForSave(workingGrid); JsonSerializer serializer = new JsonSerializer(); serializer.Converters.Add(new TimespanConverter()); serializer.NullValueHandling = NullValueHandling.Ignore; serializer.Formatting = Formatting.Indented; using (StreamWriter sw = new StreamWriter(initParams.Path)) { using (JsonWriter writer = new JsonTextWriter(sw)) { serializer.Serialize(writer, gridForSave); } } }