public OperationResult<bool> Save(RubezhAPI.GK.GKSchedule item) { return DbServiceHelper.InTryCatch(() => { bool isNew = false; var tableItem = GetTableItems().FirstOrDefault(x => x.UID == item.UID); if (tableItem == null) { isNew = true; tableItem = new GKSchedule { UID = item.UID }; } else { Context.GKScheduleDays.RemoveRange(tableItem.ScheduleDays); Context.ScheduleGKDaySchedules.RemoveRange(tableItem.ScheduleGKDaySchedules); } tableItem.No = item.No; tableItem.Name = item.Name; tableItem.Description = item.Description; tableItem.Year = item.Year; tableItem.Type = (int)item.ScheduleType; tableItem.PeriodType = (int)item.SchedulePeriodType; tableItem.StartDateTime = item.StartDateTime.CheckDate(); tableItem.HoursPeriod = item.HoursPeriod; tableItem.HolidayScheduleNo = item.HolidayScheduleNo; tableItem.WorkingHolidayScheduleNo = item.WorkHolidayScheduleNo; tableItem.ScheduleDays = item.SelectedDays.Select(x => new GKScheduleDay { UID = Guid.NewGuid(), ScheduleUID = item.UID, DateTime = x.CheckDate() }).ToList(); tableItem.ScheduleGKDaySchedules = item.ScheduleParts.Select(x => new ScheduleGKDaySchedule { UID = Guid.NewGuid(), ScheduleUID = item.UID, DayScheduleUID = x.DayScheduleUID.EmptyToNull(), DayNo = x.DayNo }).ToList(); if (isNew) Context.GKSchedules.Add(tableItem); Context.SaveChanges(); return true; }); }
public RubezhAPI.GK.GKSchedule Translate(GKSchedule tableItem) { var result = new RubezhAPI.GK.GKSchedule(); result.UID = tableItem.UID; result.No = tableItem.No; result.Name = tableItem.Name; result.Description = tableItem.Description; result.ScheduleType = (RubezhAPI.GK.GKScheduleType)tableItem.Type; result.SchedulePeriodType = (RubezhAPI.GK.GKSchedulePeriodType)tableItem.PeriodType; result.StartDateTime = tableItem.StartDateTime; result.HoursPeriod = tableItem.HoursPeriod; result.HolidayScheduleNo = tableItem.HolidayScheduleNo; result.WorkHolidayScheduleNo = tableItem.WorkingHolidayScheduleNo; result.ScheduleParts = tableItem.ScheduleGKDaySchedules.Select(x => new GKSchedulePart() { DayScheduleUID = x.DayScheduleUID.GetValueOrDefault(), DayNo = x.DayNo }).ToList(); result.SelectedDays = tableItem.ScheduleDays.Select(x => x.DateTime).ToList(); result.Year = tableItem.Year; return result; }