public DateTime GetFirstTime(int clinicId, int DoctorId, int turnType, int dayIndex) { ClinicSetting setting = clinicSettingRepository.GetFirstTime(clinicId, dayIndex); DateTime date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, setting.StartTime.Hours, setting.StartTime.Minutes, setting.StartTime.Seconds); for (DateTime d = date; d.Hour <= setting.EndTime.Hours; d = d.AddMinutes(10)) ////because 10 is minimum of time request { if ((int)d.DayOfWeek != dayIndex && dayIndex != 7) { d = d.AddDays(1); d = d.AddMinutes(-10); //setting = clinicSettingRepository.GetFirstTime(clinicId,dayIndex); //date= new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, setting.StartTime.Hours, setting.StartTime.Minutes, setting.StartTime.Seconds); continue; } TimeSpan result = isEmpty(d, DoctorId, turnType, clinicId); //// if result == 0 meens that time is empty if (result == new TimeSpan()) { return(d); } else ////else we should go forward enough to last turn length { d = d.AddMinutes(result.Minutes - 10).AddHours(result.Hours).AddSeconds(result.Seconds); } if (d.Hour == setting.EndTime.Hours) { d = d.AddMinutes(-10); if (dayIndex <= 6) { setting = clinicSettingRepository.GetFirstTime(clinicId, ++dayIndex); } else { dayIndex = 0; setting = clinicSettingRepository.GetFirstTime(clinicId, 0); } //date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, setting.StartTime.Hours, setting.StartTime.Minutes, setting.StartTime.Seconds); date.AddDays(1); date = date.AddMinutes(-(date.Minute)); date = date.AddSeconds(-(date.Second)); date = date.AddHours(-(date.Hour)); date = date.AddMinutes(setting.StartTime.Minutes); date = date.AddSeconds(setting.StartTime.Seconds); date = date.AddHours(setting.StartTime.Hours); } } return(new DateTime()); }
private void SaveBtn_Click(object sender, EventArgs e) { List <ClinicSetting> settings = clinicSettingRepository.GetSettings(ClinicId); ClinicSetting saturday = settings.SingleOrDefault(s => s.DayIndex == 6); saturday.IsActive = SaturdayIsActive.Checked; TimeSpan saturdayStart = new TimeSpan((int)saturdayStartHour.Value, (int)saturdayStartMin.Value, 0); saturday.StartTime = saturdayStart; TimeSpan saturdayEnd = new TimeSpan((int)saturdayEndHour.Value, (int)saturdayEndMin.Value, 0); saturday.EndTime = saturdayEnd; ////////////////////////////////////////////////////////////// ClinicSetting sunday = settings.SingleOrDefault(s => s.DayIndex == 0); sunday.IsActive = SundayIsActive.Checked; TimeSpan sundayStart = new TimeSpan((int)SundayStartHour.Value, (int)SundayStartMin.Value, 0); sunday.StartTime = sundayStart; TimeSpan sundayEnd = new TimeSpan((int)SundayEndHour.Value, (int)SundayEndMin.Value, 0); sunday.EndTime = sundayEnd; /////////////////////////////////////////////////////////////// ClinicSetting monday = settings.SingleOrDefault(s => s.DayIndex == 1); monday.IsActive = MondayIsActive.Checked; TimeSpan mondaystart = new TimeSpan((int)MondayStartHour.Value, (int)MondayStartMin.Value, 0); monday.StartTime = mondaystart; TimeSpan mondayEnd = new TimeSpan((int)MondayEndHour.Value, (int)MondayEndMin.Value, 0); monday.EndTime = mondayEnd; /////////////////////////////////////////////////////////////// ClinicSetting tuesday = settings.SingleOrDefault(s => s.DayIndex == 2); tuesday.IsActive = TuesdayIsActive.Checked; TimeSpan tuesdaystart = new TimeSpan((int)TuesdayStartHour.Value, (int)TuesdayStartMin.Value, 0); tuesday.StartTime = tuesdaystart; TimeSpan tuesdayEnd = new TimeSpan((int)TuesdayEndHour.Value, (int)TuesdayEndMin.Value, 0); tuesday.EndTime = tuesdayEnd; ///////////////////////////////////////////////////////////// ClinicSetting wednsday = settings.SingleOrDefault(s => s.DayIndex == 3); wednsday.IsActive = WednsdayIsActive.Checked; TimeSpan wednsdaystart = new TimeSpan((int)WednsdayStartHour.Value, (int)WednsdayStartMin.Value, 0); wednsday.StartTime = wednsdaystart; TimeSpan wednsdayEnd = new TimeSpan((int)WednsdayEndHour.Value, (int)WednsdayEndMin.Value, 0); wednsday.EndTime = wednsdayEnd; ////////////////////////////////////////////////////////////// ClinicSetting thursday = settings.SingleOrDefault(s => s.DayIndex == 4); thursday.IsActive = ThursdayIsActive.Checked; TimeSpan thursdaystart = new TimeSpan((int)ThursdayStartHour.Value, (int)ThursdayStartMin.Value, 0); thursday.StartTime = thursdaystart; TimeSpan thursdayEnd = new TimeSpan((int)ThursdayEndHour.Value, (int)ThursdayEndMin.Value, 0); thursday.EndTime = thursdayEnd; /////////////////////////////////////////////////////////////// ClinicSetting friday = settings.SingleOrDefault(s => s.DayIndex == 5); friday.IsActive = FridayIsActive.Checked; TimeSpan fridaystart = new TimeSpan((int)FridayStartHour.Value, (int)FridayStartMin.Value, 0); friday.StartTime = fridaystart; TimeSpan fridayEnd = new TimeSpan((int)FridayEndHour.Value, (int)FridayEndHour.Value, 0); friday.EndTime = fridayEnd; clinicSettingRepository.Update(); MessageBox.Show("عملیات با موفقیت انجام شد !", "موفق", MessageBoxButtons.OK); this.Close(); }
private void ClinicSettingPannel_Load(object sender, EventArgs e) { List <ClinicSetting> settings = clinicSettingRepository.GetSettings(ClinicId); if (settings != null) { ClinicSetting saturday = settings.SingleOrDefault(s => s.DayIndex == 6); SaturdayIsActive.Checked = saturday.IsActive; saturdayStartHour.Value = saturday.StartTime.Hours; saturdayStartMin.Value = saturday.StartTime.Minutes; saturdayEndHour.Value = saturday.EndTime.Hours; saturdayEndMin.Value = saturday.EndTime.Minutes; ////////////////////////////////////////////////////////////// ClinicSetting sunday = settings.SingleOrDefault(s => s.DayIndex == 0); SundayIsActive.Checked = sunday.IsActive; SundayStartHour.Value = sunday.StartTime.Hours; SundayStartMin.Value = sunday.StartTime.Minutes; SundayEndHour.Value = sunday.EndTime.Hours; SundayEndMin.Value = sunday.EndTime.Minutes; /////////////////////////////////////////////////////////////// ClinicSetting monday = settings.SingleOrDefault(s => s.DayIndex == 1); MondayIsActive.Checked = monday.IsActive; MondayStartHour.Value = monday.StartTime.Hours; MondayStartMin.Value = monday.StartTime.Minutes; MondayEndHour.Value = monday.EndTime.Hours; MondayEndMin.Value = monday.EndTime.Minutes; /////////////////////////////////////////////////////////////// ClinicSetting tuesday = settings.SingleOrDefault(s => s.DayIndex == 2); TuesdayIsActive.Checked = tuesday.IsActive; TuesdayStartHour.Value = tuesday.StartTime.Hours; TuesdayStartMin.Value = tuesday.StartTime.Minutes; TuesdayEndHour.Value = tuesday.EndTime.Hours; TuesdayEndMin.Value = tuesday.EndTime.Minutes; ///////////////////////////////////////////////////////////// ClinicSetting wednsday = settings.SingleOrDefault(s => s.DayIndex == 3); WednsdayIsActive.Checked = wednsday.IsActive; WednsdayStartHour.Value = wednsday.StartTime.Hours; WednsdayStartMin.Value = wednsday.StartTime.Minutes; WednsdayEndHour.Value = wednsday.EndTime.Hours; WednsdayEndMin.Value = wednsday.EndTime.Minutes; ////////////////////////////////////////////////////////////// ClinicSetting thursday = settings.SingleOrDefault(s => s.DayIndex == 4); ThursdayIsActive.Checked = thursday.IsActive; ThursdayStartHour.Value = thursday.StartTime.Hours; ThursdayStartMin.Value = thursday.StartTime.Minutes; ThursdayEndHour.Value = thursday.EndTime.Hours; ThursdayEndMin.Value = thursday.EndTime.Minutes; /////////////////////////////////////////////////////////////// ClinicSetting friday = settings.SingleOrDefault(s => s.DayIndex == 5); FridayIsActive.Checked = friday.IsActive; FridayStartHour.Value = friday.StartTime.Hours; FridayStartMin.Value = friday.StartTime.Minutes; FridayEndHour.Value = friday.EndTime.Hours; FridayEndMin.Value = friday.EndTime.Minutes; } else { clinicSettingRepository.CreateDefaultSetting(ClinicId); } initIsActives(); }