private void FillSpecialWorkDay(EmployeeGroupOption option, FormCollection form) { if (form["workdayStart"] == null) { return; } string[] startTimes = form["workdayStart"].Split(','); string[] endTimes = form["workdayEnd"].Split(','); string[] dates = form["workdayDate"].Split(','); var mergeWorkDayMark = new Dictionary <DateTime, SpecialWorkDayMark>(); for (int i = 0; i < startTimes.Length; i++) { Time startTime = ConverToTime(startTimes[i]); Time endTime = ConverToTime(endTimes[i]); DateTime date = DateTime.ParseExact(dates[i], "yyyy-MM-dd", null); if (!mergeWorkDayMark.ContainsKey(date)) { mergeWorkDayMark.Add(date, new SpecialWorkDayMark { Date = date }); } SpecialWorkDayMark mark = mergeWorkDayMark[date]; mark.Periods.Add(new Period { StartTime = startTime, EndTime = endTime }); } option.SpecialWorkDay.Clear(); option.SpecialWorkDay.AddAll(mergeWorkDayMark.Values); }
private void FillWeekDay(EmployeeGroupOption option, FormCollection form) { foreach (DayOfWeek dayOfWeek in Enum.GetValues(typeof(DayOfWeek))) { if (form[dayOfWeek + "Start"] == null) { continue; } string[] startTimes = form[dayOfWeek + "Start"].Split(','); string[] endTimes = form[dayOfWeek + "End"].Split(','); string[] remarks = form[dayOfWeek + "Remarks"].Split(','); option.WeekSetting[dayOfWeek].WorkTimes.Clear(); for (int i = 0; i < startTimes.Length; i++) { var period = new Period { EndTime = ConverToTime(endTimes[i]), StartTime = ConverToTime(startTimes[i]), Remarks = remarks[i] }; option.WeekSetting[dayOfWeek].WorkTimes.Add(period); } } }