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