예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
                }
            }
        }