Example #1
0
        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);
        }
Example #2
0
        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();
        }