public static WorkCalendar.DTO GetByID(long ID) { DakkaLinqDataContext db = DBHelper.GetDakkaLinqDataContext(); var result = db.WorkCalendar.SingleOrDefault(wc => wc.ID == ID); if (result == null) { throw new Exception("Can not find shiftDef by id: " + ID.ToString()); } WorkCalendar.DTO head = new WorkCalendar.DTO() { Code = result.Code, Name = result.Name, Description = result.Description, FromDate = result.FromDate.HasValue ? result.FromDate.GetValueOrDefault().ToString("yyyy-MM-dd") : null, ToDate = result.ToDate.HasValue ? result.ToDate.GetValueOrDefault().ToString("yyyy-MM-dd") : null, WorkCalendarRules = new List <WorkCalendarRule.DTO>() }; foreach (var rule in result.WorkCalendarRule) { var line = new WorkCalendarRule.DTO() { RuleType = new RuleTypeEnum(rule.RuleType).Name, IsWorkDay = rule.IsWorkDay.ToString(), Week = new WeekEnum(rule.Week).Name, Month = rule.Month.ToString(), Year = rule.Year.ToString(), Day = rule.Day.ToString(), Number = rule.Number.ToString(), ShiftDef = rule.ShiftDef.ToString() }; head.WorkCalendarRules.Add(line); } return(head); }
public static void AddNewWorkCalendar(WorkCalendar.DTO headDTO, List <WorkCalendarRule.DTO> lineDTOs) { DakkaLinqDataContext db = DBHelper.GetDakkaLinqDataContext(); WorkCalendar workCalendar = new WorkCalendar { Code = headDTO.Code, Name = headDTO.Name, Description = headDTO.Description, //FromDate = DateTime.Parse(headDTO.FromDate), //ToDate = DateTime.Parse(headDTO.ToDate) }; if (headDTO.FromDate != null) { workCalendar.FromDate = DateTime.Parse(headDTO.FromDate); } if (headDTO.ToDate != null) { workCalendar.ToDate = DateTime.Parse(headDTO.ToDate); } foreach (var line in lineDTOs) { WorkCalendarRule workCalendarRule = new WorkCalendarRule() { RuleType = new RuleTypeEnum(line.RuleType).Value, IsWorkDay = new IsWorkDayEnum(line.IsWorkDay).Value }; if (line.Week != "" && line.Week != "null") { workCalendarRule.Week = new WeekEnum(line.Week).Value; } if (line.Year != "" && line.Year != "null") { workCalendarRule.Year = int.Parse(line.Year); } if (line.Month != "" && line.Month != "null") { workCalendarRule.Month = int.Parse(line.Month); } if (line.Day != "" && line.Day != "null") { workCalendarRule.Day = int.Parse(line.Day); } if (line.Number != "" && line.Number != "null") { workCalendarRule.Number = int.Parse(line.Number); } if (line.ShiftDef != "" && line.ShiftDef != "null") { ShiftDef sd = ShiftDef.GetByCode(line.ShiftDef); if (sd != null) { workCalendarRule.ShiftDef = sd.ID; } } workCalendarRule.RuleValue = "0"; // TODO: 此处RuleValue在数据库中不能为空, 故先赋值, 待修改. workCalendar.WorkCalendarRule.Add(workCalendarRule); } db.WorkCalendar.InsertOnSubmit(workCalendar); db.SubmitChanges(); }