Example #1
0
        public void TestCreateTerms()
        {
            SqlCalendar sql = new SqlCalendar();
            IEnumerable <ClassCalendar> querycal =
                from elem in sql.CalendarList()
                where elem.Month == 2
                select elem;
            ClassCalendar calendar = querycal.First();

            sql.CreateTerms("('08:00:00','12:00:00','2000-2-1',3,1,100,1),('13:00:00','15:00:00','2000-2-2',4,2,200,2)");
            ClassGenerateCalendar.ShareCalendar(calendar, sql);

            List <ClassTerm>        list  = sql.ListOfTerms();
            IEnumerable <ClassTerm> query =
                from elem in list
                where elem.TermId == 3 && elem.CalendarDay.CalendarDayId == 1 && elem.Doctor.Doctor_id == 1 && elem.StartTime.CompareTo(new TimeSpan(8, 0, 0)) == 0 && elem.EndTime.CompareTo(new TimeSpan(12, 0, 0)) == 0
                select elem;

            Assert.Single(query);

            query =
                from elem in list
                where elem.TermId == 4 && elem.CalendarDay.CalendarDayId == 2 && elem.Doctor.Doctor_id == 2 && elem.StartTime.CompareTo(new TimeSpan(13, 0, 0)) == 0 && elem.EndTime.CompareTo(new TimeSpan(15, 0, 0)) == 0
                select elem;

            Assert.Single(query);

            querycal =
                from elem in sql.CalendarList()
                where elem.Month == 2
                select elem;

            calendar = querycal.First();
            Assert.Equal(2, calendar.Status.StatusId);
        }
Example #2
0
        public void TestCreateCalendarDays()
        {
            SqlCalendar sql = new SqlCalendar();

            IEnumerable <ClassCalendar> querycal =
                from elem in sql.CalendarList()
                where elem.Month == 4
                select elem;
            ClassCalendar calendar = querycal.First();
            int           id       = calendar.CalendarId;

            sql.CreateCalendarDays("(1,'07:00:00','20:00:00'," + id + "),(2,'07:00:00','20:00:00'," + id + "),(3,'07:00:00','20:00:00'," + id + ")");

            IEnumerable <ClassCalendarDay> query =
                from elem in sql.ListOfCalendarDays(id)
                where elem.Day == 1 && elem.StartTime.CompareTo(new TimeSpan(7, 0, 0)) == 0 && elem.EndTime.CompareTo(new TimeSpan(20, 0, 0)) == 0
                select elem;

            Assert.Single(query);

            query =
                from elem in sql.ListOfCalendarDays(id)
                where elem.Day == 2 && elem.StartTime.CompareTo(new TimeSpan(7, 0, 0)) == 0 && elem.EndTime.CompareTo(new TimeSpan(20, 0, 0)) == 0
                select elem;

            Assert.Single(query);

            query =
                from elem in sql.ListOfCalendarDays(id)
                where elem.Day == 3 && elem.StartTime.CompareTo(new TimeSpan(7, 0, 0)) == 0 && elem.EndTime.CompareTo(new TimeSpan(20, 0, 0)) == 0
                select elem;

            Assert.Single(query);
        }
Example #3
0
        private void LoadStatusToLabel(ClassCalendar calendar)
        {
            IEnumerable <ClassStatus> query =
                from elem in sql.StatusList()
                where elem.StatusId == calendar.Status.StatusId
                select elem;

            if (!query.Any())
            {
                throw new Exception("Unable to find apropriate status in database");
            }
            Status_Label.Text = query.First().Status;

            //Check if update status to Waitng to Veryfy
            if (Status_Label.Text == ClassStatus.StatusString(EnumStatus.SharedForDoctors))
            {
                sql.UpdateCalendar(calendar.CalendarId);
                List <ClassCalendar> list = sql.CalendarList();
                if (calendar.Status.StatusId != GetCalendarForSelectedCalendarInComboboxFromDataBase().Status.StatusId)
                {
                    ComboBoxPickDate.ItemsSource = sql.CalendarList();
                    if (ComboBoxPickDate.Items.Count == 0)
                    {
                        return;
                    }
                    ComboBoxPickDate.SelectedIndex = ComboBoxPickDate.Items.Count - 1;
                }
            }
        }
        private List <ClassCalendarDay> ListOfOriginalDays()
        {
            ClassCalendar           calendar    = GetCalendarForSelectedCalendarInComboboxFromDataBase();
            List <ClassCalendarDay> orignalDays = ClassSqlCalendar.ListOfCalendarDays(calendar.CalendarId);

            return(orignalDays);
        }
Example #5
0
        private void OverlappingCalendar()
        {
            ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();
            List <ClassOverlappingCalendar> list = sql.OverlappingTerms(calendar.CalendarId);

            if (list.Count != 0)
            {
                //Need changes in offices
                WindowOverlapping windowOverlapping = new WindowOverlapping(list, calendar.CalendarId);
                bool update = (bool)windowOverlapping.ShowDialog();
                if (!update)
                {
                    return;
                }
                foreach (var item in list)
                {
                    if (item.NewOfficeNumber == 0)
                    {
                        continue;
                    }
                    sql.UpdateOffice(item.TermId, item.NewOfficeId);
                }
                return;
            }
            //Calendar verified
            sql.UpdateCalendarStatus(4, calendar.CalendarId);
            MessageBox.Show("Succesfully veryfied", "Succes");
            ComboBoxPickDate.ItemsSource = sql.CalendarList();
            if (ComboBoxPickDate.Items.Count == 0)
            {
                return;
            }
            ComboBoxPickDate.SelectedIndex = ComboBoxPickDate.Items.Count - 1;
            return;
        }
Example #6
0
        private List <ClassCalendarDay> ListOfOriginalDays()
        {
            ClassCalendar           calendar    = GetCalendarForCurrentDate();
            List <ClassCalendarDay> orignalDays = ClassSqlCalendar.ListOfCalendarDays(calendar.CalendarId);

            return(orignalDays);
        }
Example #7
0
 private void DataGridListOfCalendarDoctor_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     try
     {
         ClassCalendar       calendar          = GetCalendarForSelectedCalendarInComboboxFromDataBase();
         ClassCalendarDoctor calendarDoctor    = GetCalendarDoctorForSelectedCalendarDoctorInDataGridFromDataBase(calendar.CalendarId);
         WindowDoctorTerms   windowDoctorTerms = new WindowDoctorTerms(sql.TermLisTSelectedDoctor(calendar.CalendarId, calendarDoctor.Doctor.Doctor_id), calendar.Year, calendar.Month);
         windowDoctorTerms.ShowDialog();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error");
     }
 }
Example #8
0
        public int CreateCalendar(int Year, int Month)
        {
            ClassCalendar calendar = new ClassCalendar();

            calendar.CalendarId = NextCalendarId;
            NextCalendarId++;
            calendar.Month           = Month;
            calendar.Year            = Year;
            calendar.Status          = new ClassStatus();
            calendar.Status.Status   = "New";
            calendar.Status.StatusId = 1;
            ListCalendar.Add(calendar);
            return(calendar.CalendarId);
        }
        private void ButtonAdd_Click(object sender, RoutedEventArgs e)
        {
            if (workingDayFrom.SelectedItem == null || workingDayTo.SelectedItem == null || AvailableDate.SelectedItem == null)
            {
                MessageBox.Show("You cannot leave any empty combobox!");
                return;
            }

            ClassCalendar calendar = GetCalendarForCurrentDate();
            int           dayId    = ClassSqlCalendar.GetDayIdForCalendarDate(calendar.CalendarId, ((ClassCalendarDay)AvailableDate.SelectedItem).DateInDateTime.Day);

            ClassSqlCalendar.CreateTerm((TimeSpan)workingDayFrom.SelectedItem, (TimeSpan)workingDayTo.SelectedItem, ClassSqlCalendar.GetCalendarIdForDoctor(ClassLoggedDoctor.Doctor_Id, calendar.CalendarId), dayId, ClassSQLConnections.GetOfficeIdForDoctor(ClassLoggedDoctor.Doctor_Id), ClassLoggedDoctor.Doctor_Id, ((ClassCalendarDay)AvailableDate.SelectedItem).Date);
            this.DialogResult = true;
            this.Close();
        }
Example #10
0
 //Verify calendar
 private void ButtonVerified_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();
         if (!(calendar.Status.StatusId == sql.SelectStatusId(EnumStatus.DuringVerification)))
         {
             throw new Exception("Calendar status must be during verification");
         }
         OverlappingCalendar();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error");
     }
 }
        private void Button_AcceptCalendarClick(object sender, RoutedEventArgs e)
        {
            ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();

            foreach (ClassCalendarDay day in days)
            {
                if (day.IsWorkingDay == true)
                {
                    int dayId = ClassSqlCalendar.GetDayIdForCalendarDate(calendar.CalendarId, day.DateInDateTime.Day);

                    ClassSqlCalendar.CreateTerm(day.StartTime, day.EndTime, ClassSqlCalendar.GetCalendarIdForDoctor(ClassLoggedDoctor.Doctor_Id, calendar.CalendarId), dayId, ClassSQLConnections.GetOfficeIdForDoctor(ClassLoggedDoctor.Doctor_Id), ClassLoggedDoctor.Doctor_Id, day.Date);
                }
            }

            ClassSqlCalendar.UpdateCalendarStatus(ClassSqlCalendar.SelectStatusId(EnumStatus.AcceptedByTheDoctor), calendar.CalendarId);
            NavigationService.Navigate(new WindowDoctorNewCalendarEmpty());
        }
Example #12
0
        public static void CalculateCourseSchedule(this ClassCalendar classCalendar)
        {
            var areArgumentsValid = classCalendar != null &&
                                    classCalendar.BeginDate.HasValue &&
                                    classCalendar.LessonCalendars != null &&
                                    classCalendar.LessonCalendars.Any();

            if (!areArgumentsValid)
            {
                return;
            }

            classCalendar.Holidays  = classCalendar.Holidays ?? Enumerable.Empty <DateTime>();
            classCalendar.ShiftDays = classCalendar.ShiftDays ?? Enumerable.Empty <DateTime>();

            const int ShiftOneDay      = 1;
            const int LessonDuration   = 5;
            var       currentBeginDate = classCalendar.BeginDate.Value.ToUniversalTime();
            var       shiftDays        = (classCalendar.ShiftDays ?? Enumerable.Empty <DateTime>()).Select(it => it.ToUniversalTime());
            var       lessonQry        = classCalendar.LessonCalendars.Where(it => !it.DeletedDate.HasValue).OrderBy(it => it.Order);

            foreach (var lesson in lessonQry)
            {
                // Set begin date for each lesson
                var list = new List <DateTime>();
                var beginDateOfferDay = 0;
                while (list.Count < LessonDuration)
                {
                    var date = currentBeginDate.AddDays(beginDateOfferDay++);
                    if (!shiftDays.Any(it => it == date))
                    {
                        list.Add(date);
                    }
                }
                lesson.BeginDate = list.First();
                currentBeginDate = list.Last().AddDays(ShiftOneDay);

                // Set topic of the day date
                foreach (var totd in lesson.TopicOfTheDays)
                {
                    var sendDay = totd.SendOnDay - ShiftOneDay;
                    totd.RequiredSendTopicOfTheDayDate = lesson.BeginDate.AddDays(sendDay);
                }
            }
            classCalendar.ExpiredDate = currentBeginDate.AddDays(-1);
        }
        private ClassCalendar createClassCalendar(ClassRoom classRoom, IEnumerable <LessonCatalog> lessonCatalogs, DateTime currentTime)
        {
            var lessonOrderRunner = 1;
            var lessonCalendars   = classRoom.Lessons.Select(it =>
            {
                var lessonCatalog = lessonCatalogs.FirstOrDefault(lc => lc.id == it.LessonCatalogId);
                if (lessonCatalog == null)
                {
                    return(null);
                }

                var topicOfTheDays = lessonCatalog.TopicOfTheDays.Select(totd => new ClassCalendar.TopicOfTheDay
                {
                    id          = Guid.NewGuid().ToString(),
                    CreatedDate = currentTime,
                    Message     = totd.Message,
                    SendOnDay   = totd.SendOnDay,
                    RequiredSendTopicOfTheDayDate = currentTime
                }).ToList();

                var result = new ClassCalendar.LessonCalendar
                {
                    id                = Guid.NewGuid().ToString(),
                    Order             = lessonOrderRunner++,
                    BeginDate         = currentTime.Date,
                    CreatedDate       = currentTime,
                    LessonId          = it.id,
                    SemesterGroupName = lessonCatalog.SemesterName,
                    TopicOfTheDays    = topicOfTheDays
                };
                return(result);
            }).Where(it => it != null).ToList();
            var classCalendar = new ClassCalendar
            {
                id              = Guid.NewGuid().ToString(),
                BeginDate       = currentTime.Date,
                ClassRoomId     = classRoom.id,
                CreatedDate     = currentTime,
                Holidays        = Enumerable.Empty <DateTime>(),
                ShiftDays       = Enumerable.Empty <DateTime>(),
                LessonCalendars = lessonCalendars,
            };

            return(classCalendar);
        }
Example #14
0
 //Remove calendar
 private void ButtonRemoveCalendar_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         ClassCalendar callendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();
         if (callendar.Status.StatusId != sql.SelectStatusId(EnumStatus.New))
         {
             throw new Exception("To remove calendar status must be new");
         }
         sql.DeleteCalendarAndApropriateCalendarDays(callendar.CalendarId);
         MessageBox.Show("Calendar succesfully deleted");
         ComboBoxPickDate.ItemsSource = sql.CalendarList();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Example #15
0
        private ClassCalendarDay GetCalendarDayOrGenerateIt(object sender, ClassCalendar calendar)
        {
            if (!(sender is Button))
            {
                return(GetCalendarDayForSelectedCalendarDayInDataGridFromDataBase(calendar.CalendarId));
            }
            ClassCalendarDay day = new ClassCalendarDay();

            day.Calendar            = new ClassCalendar();
            day.Calendar.CalendarId = calendar.CalendarId;
            day.StartTime           = new TimeSpan(7, 0, 0);
            day.EndTime             = new TimeSpan(20, 0, 0);
            day.Day = 1;
            int year  = ((ClassCalendar)ComboBoxPickDate.SelectedItem).Year;
            int month = ((ClassCalendar)ComboBoxPickDate.SelectedItem).Month;

            return(day);
        }
        private void LoadDateToGrid()
        {
            if (ComboBoxPickCalendar.SelectedIndex == -1)
            {
                CurrentMonthDataGrid.ItemsSource = null;
                return;
            }
            try
            {
                ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();

                CurrentMonthDataGrid.ItemsSource = ClassSqlCalendar.ListOfCalendarDays(calendar.CalendarId);
                days = ClassSqlCalendar.ListOfCalendarDays(calendar.CalendarId);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Example #17
0
        private GetCourseScheduleRespond getCourseSchedule(ClassCalendar classCalendar, bool isComplete)
        {
            const int LessonDuration  = 5;
            var       runningLessonId = 1;
            var       result          = new GetCourseScheduleRespond
            {
                IsComplete = isComplete,
                BeginDate  = classCalendar.BeginDate,
                EndDate    = classCalendar.LessonCalendars.OrderBy(it => it.Order).Last().BeginDate.AddDays(LessonDuration),
                Lessons    = classCalendar.LessonCalendars.Select(it => new LessonSchedule
                {
                    BeginDate = it.BeginDate,
                    Name      = string.Format("Lesson {0}", runningLessonId++)
                }).ToList(),
                Holidays = classCalendar.Holidays ?? Enumerable.Empty <DateTime>()
            };

            return(result);
        }
Example #18
0
        private void calculateCourseSchedule(ClassCalendar classCalendar)
        {
            var areArgumentsValid = classCalendar != null &&
                                    classCalendar.BeginDate.HasValue &&
                                    classCalendar.LessonCalendars != null &&
                                    classCalendar.LessonCalendars.Any();

            if (!areArgumentsValid)
            {
                return;
            }

            const int LessonDuration   = 5;
            var       currentBeginDate = classCalendar.BeginDate.Value.Date;
            var       shiftDays        = (classCalendar.ShiftDays ?? Enumerable.Empty <DateTime>()).Select(it => it.Date);
            var       holidays         = (classCalendar.Holidays ?? Enumerable.Empty <DateTime>()).Select(it => it.Date);
            var       lessonQry        = classCalendar.LessonCalendars.Where(it => !it.DeletedDate.HasValue).OrderBy(it => it.Order);

            foreach (var lesson in lessonQry)
            {
                while (true)
                {
                    var beginDate      = currentBeginDate;
                    var endDate        = currentBeginDate.AddDays(LessonDuration);
                    var lessonRange    = Enumerable.Range(0, LessonDuration).Select(it => beginDate.AddDays(it).Date);
                    var availableRange = lessonRange.Except(holidays);
                    if (availableRange.Any())
                    {
                        lesson.BeginDate = availableRange.First();
                        var totalShiftDayInLessonRange = lessonRange.Intersect(shiftDays).Count();
                        var nextBeginDate = endDate.AddDays(totalShiftDayInLessonRange);
                        currentBeginDate = nextBeginDate;
                        break;
                    }
                    else
                    {
                        const int ShiftOneDayForNextLesson = 1;
                        var       nextBeginDate            = endDate.AddDays(ShiftOneDayForNextLesson);
                        currentBeginDate = nextBeginDate;
                    }
                }
            }
        }
Example #19
0
        /// <summary>
        /// อัพเดทหรือเพิ่มข้อมูล Class calendar
        /// </summary>
        /// <param name="data">ข้อมูลที่ต้องการดำเนินการ</param>
        public void UpsertClassCalendar(ClassCalendar data)
        {
            var update = Builders <ClassCalendar> .Update
                         .Set(it => it.BeginDate, data.BeginDate)
                         .Set(it => it.ExpiredDate, data.ExpiredDate)
                         .Set(it => it.CloseDate, data.CloseDate)
                         .Set(it => it.ClassRoomId, data.ClassRoomId)
                         .Set(it => it.CreatedDate, data.CreatedDate)
                         .Set(it => it.DeletedDate, data.DeletedDate)
                         .Set(it => it.LessonCalendars, data.LessonCalendars)
                         .Set(it => it.Holidays, data.Holidays)
                         .Set(it => it.ShiftDays, data.ShiftDays);

            var updateOption = new UpdateOptions {
                IsUpsert = true
            };

            _mongoUtil.GetCollection <ClassCalendar>(TableName)
            .UpdateOne(it => it.id == data.id, update, updateOption);
        }
Example #20
0
 private void ReloadData()
 {
     if (ComboBoxPickDate.SelectedIndex == -1)
     {
         DataGridListOfDoctors.ItemsSource        = null;
         DataGridListOfCalendarDoctor.ItemsSource = null;
         Status_Label.Text = "...";
         return;
     }
     try
     {
         ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();
         DataGridListOfDoctors.ItemsSource        = sql.ListOfCalendarDays(calendar.CalendarId);
         DataGridListOfCalendarDoctor.ItemsSource = sql.ListOfCalendarDoctor(calendar.CalendarId);
         LoadStatusToLabel(calendar);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Example #21
0
 //Remove calendar day
 private void ButtonRemove_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();
         if (calendar.Status.StatusId != sql.SelectStatusId(EnumStatus.New))
         {
             throw new Exception("Calendar status must be new");
         }
         ClassCalendarDay day = GetCalendarDayForSelectedCalendarDayInDataGridFromDataBase(calendar.CalendarId);
         if (!(MessageBox.Show("Are you sure you want to delete this day?", "Continue?", MessageBoxButton.YesNo) == MessageBoxResult.Yes))
         {
             return;
         }
         sql.DeleteCalendarDay(day.CalendarDayId);
         ReloadData();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private List <ClassCalendarDay> ListOfAvaiableDates()
        {
            ClassCalendar           calendar         = GetCalendarForCurrentDate();
            List <ClassCalendarDay> allAvailableDays = ClassSqlCalendar.ListOfCalendarDays(calendar.CalendarId);
            List <ClassTerm>        workingDays      = ClassSqlCalendar.GetListOfWorkingDayInCurrentMonth(ClassLoggedDoctor.Doctor_Id);

            List <ClassCalendarDay> avaiableDates = new List <ClassCalendarDay>();

            foreach (ClassTerm term in workingDays)
            {
                foreach (ClassCalendarDay day in allAvailableDays)
                {
                    if (term.Date == day.DateInDateTime)
                    {
                        avaiableDates.Add(day);
                    }
                }
            }

            avaiableDates = allAvailableDays.Except(avaiableDates).ToList();

            return(avaiableDates);
        }
Example #23
0
        /// <summary>
        /// อัพเดทหรือเพิ่มข้อมูล Class calendar
        /// </summary>
        /// <param name="data">ข้อมูลที่ต้องการดำเนินการ</param>
        public void UpsertClassCalendar(ClassCalendar data)
        {
            var update = Builders <ClassCalendar> .Update
                         .Set(it => it.BeginDate, data.BeginDate)
                         .Set(it => it.IsWeekendHoliday, data.IsWeekendHoliday)
                         .Set(it => it.ExpiredDate, data.ExpiredDate)
                         .Set(it => it.CloseDate, data.CloseDate)
                         .Set(it => it.ClassRoomId, data.ClassRoomId)
                         .Set(it => it.LastCalculateHolidayRequest, data.LastCalculateHolidayRequest)
                         .Set(it => it.LastCalculateHolidayComplete, data.LastCalculateHolidayComplete)
                         .Set(it => it.CreatedDate, data.CreatedDate)
                         .Set(it => it.DeletedDate, data.DeletedDate)
                         .Set(it => it.LessonCalendars, data.LessonCalendars)
                         .Set(it => it.Holidays, data.Holidays)
                         .Set(it => it.ShiftDays, data.ShiftDays);

            var updateOption = new UpdateOptions {
                IsUpsert = true
            };

            MongoAccess.MongoUtil.Instance.GetCollection <ClassCalendar>(TableName)
            .UpdateOne(it => it.id == data.id, update, updateOption);
        }
Example #24
0
        //Share calendar
        private void ButtonShare_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                ClassCalendar calendar = GetCalendarForSelectedCalendarInComboboxFromDataBase();
                if (calendar.Status.StatusId != sql.SelectStatusId(EnumStatus.New))
                {
                    throw new Exception("Calendar status must be new");
                }
                ClassGenerateCalendar.ShareCalendar(calendar, sql);
                MessageBox.Show("Succesfully shared calendar");

                ComboBoxPickDate.ItemsSource = sql.CalendarList();
                if (ComboBoxPickDate.Items.Count == 0)
                {
                    return;
                }
                ComboBoxPickDate.SelectedIndex = ComboBoxPickDate.Items.Count - 1;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
        }
Example #25
0
 /// <summary>
 /// สร้าง Class calendar ใหม่
 /// </summary>
 /// <param name="data">ข้อมูล Class calendar ที่ต้องการสร้าง</param>
 public async Task CreateNewClassCalendar(ClassCalendar data)
 {
     await _mongoUtil.GetCollection <ClassCalendar>(TableName).InsertOneAsync(data);
 }
Example #26
0
        public SqlCalendar()
        {
            #region Office
            ClassOffice o1 = new ClassOffice();
            o1.OfficeId     = 1;
            o1.OfficeNumber = 100;

            ClassOffice o2 = new ClassOffice();
            o1.OfficeId     = 2;
            o1.OfficeNumber = 200;
            ListOffice      = new List <ClassOffice>()
            {
                o1, o2
            };
            #endregion

            #region Status
            ClassStatus s1 = new ClassStatus();
            s1.StatusId = 1;
            s1.Status   = "New";
            ClassStatus s2 = new ClassStatus();
            s2.StatusId = 2;
            s2.Status   = "Shared for doctors";
            ClassStatus s3 = new ClassStatus();
            s3.StatusId = 3;
            s3.Status   = "During verification";
            ClassStatus s4 = new ClassStatus();
            s4.StatusId = 4;
            s4.Status   = "Verified";
            ClassStatus s5 = new ClassStatus();
            s5.StatusId = 5;
            s5.Status   = "Waiting for administrator acceptance";
            ClassStatus s6 = new ClassStatus();
            s6.StatusId = 6;
            s6.Status   = "During verification by the doctor";
            ClassStatus s7 = new ClassStatus();
            s7.StatusId = 7;
            s7.Status   = "Accepted by the doctor";
            ListStatus  = new List <ClassStatus>()
            {
                s1, s2, s3, s4, s5, s6, s7
            };
            #endregion

            #region Doctor
            ClassDoctor dct1 = new ClassDoctor();
            dct1.Active       = true;
            dct1.Doctor_id    = 1;
            dct1.Name         = "Jan";
            dct1.Surname      = "Nowak";
            dct1.OfficeNumber = 100;
            ClassDoctor dct2 = new ClassDoctor();
            dct2.Active       = true;
            dct2.Doctor_id    = 2;
            dct2.Name         = "Tomasz";
            dct2.Surname      = "Kowalski";
            dct2.OfficeNumber = 200;
            ListDoctor        = new List <ClassDoctor>()
            {
                dct1, dct2
            };
            #endregion

            #region FixedTerms
            ClassFixedTerms ft1 = new ClassFixedTerms();
            ft1.Day      = 2;
            ft1.Start    = new TimeSpan(8, 0, 0);
            ft1.End      = new TimeSpan(12, 0, 0);
            ft1.DoctorId = 1;

            ClassFixedTerms ft2 = new ClassFixedTerms();
            ft2.Day        = 3;
            ft2.Start      = new TimeSpan(13, 0, 0);
            ft2.End        = new TimeSpan(15, 0, 0);
            ft2.DoctorId   = 2;
            ListFixedTerms = new List <ClassFixedTerms>()
            {
                ft1, ft2
            };
            #endregion

            #region Calendar
            ClassCalendar c1 = new ClassCalendar();
            c1.Year            = 2000;
            c1.Month           = 2;
            c1.CalendarId      = 1;
            c1.Status          = new ClassStatus();
            c1.Status.StatusId = 1;
            ListCalendar.Add(c1);

            ClassCalendar c2 = new ClassCalendar();
            c2.Year            = 2000;
            c2.Month           = 3;
            c2.CalendarId      = 2;
            c2.Status          = new ClassStatus();
            c2.Status.StatusId = 3;
            ListCalendar.Add(c2);

            ClassCalendar c3 = new ClassCalendar();
            c3.Year            = 2000;
            c3.Month           = 4;
            c3.CalendarId      = 3;
            c3.Status          = new ClassStatus();
            c3.Status.StatusId = 1;
            ListCalendar.Add(c3);

            #endregion

            #region Calendar Doctor
            ClassCalendarDoctor cd1 = new ClassCalendarDoctor();
            cd1.Calendar            = new ClassCalendar();
            cd1.Calendar.CalendarId = 2;
            cd1.CalendarDoctorId    = 1;
            cd1.Doctor           = new ClassDoctor();
            cd1.Doctor.Doctor_id = 1;
            cd1.Status           = new ClassStatus();
            cd1.Status.StatusId  = 7;
            ListCalendarDoctor.Add(cd1);

            ClassCalendarDoctor cd2 = new ClassCalendarDoctor();
            cd2.Calendar            = new ClassCalendar();
            cd2.Calendar.CalendarId = 2;
            cd2.CalendarDoctorId    = 2;
            cd2.Doctor           = new ClassDoctor();
            cd2.Doctor.Doctor_id = 2;
            cd2.Status           = new ClassStatus();
            cd2.Status.StatusId  = 7;
            ListCalendarDoctor.Add(cd2);
            #endregion

            #region Calendar Day
            ClassCalendarDay d1 = new ClassCalendarDay();
            d1.Calendar            = new ClassCalendar();
            d1.Calendar.CalendarId = 1;
            d1.CalendarDayId       = 1;
            d1.Day       = 1;
            d1.StartTime = new TimeSpan(7, 0, 0);
            d1.EndTime   = new TimeSpan(20, 0, 0);
            ListCalendarDay.Add(d1);

            ClassCalendarDay d2 = new ClassCalendarDay();
            d2.Calendar            = new ClassCalendar();
            d2.Calendar.CalendarId = 1;
            d2.CalendarDayId       = 2;
            d2.Day       = 2;
            d2.StartTime = new TimeSpan(7, 0, 0);
            d2.EndTime   = new TimeSpan(20, 0, 0);
            ListCalendarDay.Add(d2);

            ClassCalendarDay d3 = new ClassCalendarDay();
            d3.Calendar            = new ClassCalendar();
            d3.Calendar.CalendarId = 2;
            d3.CalendarDayId       = 3;
            d3.Day       = 1;
            d3.StartTime = new TimeSpan(7, 0, 0);
            d3.EndTime   = new TimeSpan(20, 0, 0);
            ListCalendarDay.Add(d3);

            ClassCalendarDay d4 = new ClassCalendarDay();
            d4.Calendar            = new ClassCalendar();
            d4.Calendar.CalendarId = 2;
            d4.CalendarDayId       = 4;
            d4.Day       = 7;
            d4.StartTime = new TimeSpan(7, 0, 0);
            d4.EndTime   = new TimeSpan(20, 0, 0);
            ListCalendarDay.Add(d4);

            #endregion

            #region Term
            ClassTerm t1 = new ClassTerm();
            t1.TermId              = 1;
            t1.CalendarDay         = new ClassCalendarDay();
            t1.CalendarDay         = d3;
            t1.CalendarDoctor      = cd1;
            t1.Date                = new DateTime(2000, 3, 1);
            t1.Doctor              = dct1;
            t1.StartTime           = new TimeSpan(8, 0, 0);
            t1.EndTime             = new TimeSpan(12, 0, 0);
            t1.Office              = new ClassOffice();
            t1.Office.OfficeNumber = 100;
            ListTerm.Add(t1);

            ClassTerm t2 = new ClassTerm();
            t2.TermId              = 2;
            t2.CalendarDay         = new ClassCalendarDay();
            t2.CalendarDay         = d4;
            t2.CalendarDoctor      = cd2;
            t2.Date                = new DateTime(2000, 3, 7);
            t2.Doctor              = dct2;
            t2.StartTime           = new TimeSpan(13, 0, 0);
            t2.EndTime             = new TimeSpan(15, 0, 0);
            t2.Office              = new ClassOffice();
            t2.Office.OfficeNumber = 200;
            ListTerm.Add(t2);
            #endregion
        }
Example #27
0
        public static UserActivity CreateNewUserActivity(this UserProfile selectedUserProfile, ClassRoom selectedClassRoom, ClassCalendar selectedClassCalendar, List <LessonCatalog> lessonCatalogs, DateTime now)
        {
            var lessonActivities = selectedClassRoom.Lessons.Select(lessonInClassRoom =>
            {
                var selectedLessonCalendar = selectedClassCalendar.LessonCalendars
                                             .Where(it => !it.DeletedDate.HasValue)
                                             .FirstOrDefault(lessonCalendar => lessonCalendar.LessonId == lessonInClassRoom.id);

                var selectedLessonCatalog = lessonCatalogs.FirstOrDefault(it => it.id == lessonInClassRoom.LessonCatalogId);

                var totalContentsAmount = selectedLessonCatalog.PostAssessments.Count()
                                          + selectedLessonCatalog.PreAssessments.Count()
                                          + selectedLessonCatalog.StudentItems.Count()
                                          + selectedLessonCatalog.TeacherItems.Count();
                return(new UserActivity.LessonActivity
                {
                    id = Guid.NewGuid().ToString(),
                    BeginDate = selectedLessonCalendar.BeginDate,
                    TotalContentsAmount = totalContentsAmount,
                    LessonId = lessonInClassRoom.id,
                    SawContentIds = Enumerable.Empty <string>()
                });
            }).ToList();

            var userActivity = new UserActivity
            {
                id = Guid.NewGuid().ToString(),
                UserProfileName     = selectedUserProfile.Name,
                UserProfileImageUrl = selectedUserProfile.ImageProfileUrl,
                UserProfileId       = selectedUserProfile.id,
                ClassRoomId         = selectedClassRoom.id,
                CreatedDate         = now,
                LessonActivities    = lessonActivities
            };

            return(userActivity);
        }