public static void GenerateCalendar(int Year, int Month, ISqlCalendar sql) { //Check if calendar for next month wasn't already created if (CalendarAlreadyCreated(Year, Month, sql)) { throw new Exception("Calendar already created for next month"); } //Create list of working days for clinic List <int> daysInMonth = WorkingDaysInMonth(Year, Month); //Create Calendar int calendarId = sql.CreateCalendar(Year, Month); //Create querry string querry = ""; foreach (int day in daysInMonth) { querry += String.Format("({0},'{1}','{2}',{3}),", day, new TimeSpan(7, 0, 0), new TimeSpan(20, 0, 0), calendarId); } if (querry.Length == 0) { return; } querry = Login.ClassHelpers.RemoveLastCharOfString(querry); //Create calendar days sql.CreateCalendarDays(querry); }
public static void ShareCalendar(ClassCalendar calendar, ISqlCalendar sql) { int Year = calendar.Year; int Month = calendar.Month; int calendarId = calendar.CalendarId; //List of Active doctors List <ClassDoctor> DoctorList = ListOfActiveDoctors(sql.DoctorList()); //List of calendar days List <ClassCalendarDay> dayList = sql.ListOfCalendarDays(calendarId); string querry = ""; foreach (ClassDoctor dct in DoctorList) { //Create calendar doctor int calendarDoctorId = sql.CreateCalendarDoctor(dct.Doctor_id, calendarId); //Querry for terms for doctor querry += QuerryTermsForDoctor(Year, Month, calendarDoctorId, calendarId, dct, dayList, sql); } if (querry.Length == 0) { return; } querry = Login.ClassHelpers.RemoveLastCharOfString(querry); //Add new terms sql.CreateTerms(querry); //Update calendar status sql.UpdateCalendarStatus(sql.SelectStatusId(EnumStatus.SharedForDoctors), calendarId); }
private static bool CalendarAlreadyCreated(int Year, int Month, ISqlCalendar sql) { List <ClassCalendar> calendarList = sql.CalendarList(); foreach (ClassCalendar item in calendarList) { if (item.Year == Year && item.Month == Month) { return(true); } } return(false); }
private static string QuerryTermsForDoctor(int Year, int Month, int calendarDoctorId, int calendarId, ClassDoctor dct, List <ClassCalendarDay> dayList, ISqlCalendar sql) { string querry = ""; foreach (ClassCalendarDay d in dayList) { DateTime data = new DateTime(Year, Month, d.Day); foreach (var item in sql.ListFixedTermsForSpecifiedDoctor(dct.Doctor_id)) { if ((int)data.DayOfWeek == item.Day) { if (item.Start >= d.StartTime && item.End <= d.EndTime) { querry += String.Format("('{0}','{1}','{2}',{3},{4},{5},{6}),", item.Start, item.End, String.Format("{0}-{1}-{2}", data.Year, data.Month, data.Day), calendarDoctorId, sql.SelectCalendarDayId(d.Day, calendarId), dct.OfficeNumber, dct.Doctor_id); } break; } } } return(querry); }