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