public static XtracurEventsIndexMonthViewModel Build(XtracurDivision xtracurDivision, DateTime?month,
                                                             int?showImmediateEventId, int?showImmediateRecurrenceIndex)
        {
            var language = CultureHelper.CurrentLanguage;
            var firstDayOfCurrentMonth     = DateTimeHelper.GetFirstDayOfCurrentMonth();
            var firstDayOfChosenMonth      = DateTimeHelper.GetFirstDayOfMonth(month);
            var firstDayOfTheNextMonth     = DateTimeHelper.GetFirstDayOfTheNextMonth(firstDayOfChosenMonth);
            var firstDayOfThePreviousMonth = DateTimeHelper.GetFirstDayOfThePreviousMonth(firstDayOfChosenMonth);
            var eventGroupings             = EventsViewModelHelper.GetXtracurEventGroupings(xtracurDivision,
                                                                                            firstDayOfChosenMonth, firstDayOfTheNextMonth, showImmediateEventId, showImmediateRecurrenceIndex);

            return(new XtracurEventsIndexMonthViewModel
            {
                Alias = xtracurDivision.Alias,
                Title = xtracurDivision.GetNameByLanguage(language),
                IsCurrentMonthReferenceAvailable = firstDayOfCurrentMonth != firstDayOfChosenMonth,
                ChosenMonthDisplayText = GetMonthDisplayText(firstDayOfChosenMonth),
                PreviousMonthDisplayText = GetPreviousMonthDisplayText(firstDayOfThePreviousMonth),
                PreviousMonthDate = DateTimeHelper.GetDateStringForWeb(firstDayOfThePreviousMonth),
                NextMonthDisplayText = GetNextMonthDisplayText(firstDayOfTheNextMonth),
                NextMonthDate = DateTimeHelper.GetDateStringForWeb(firstDayOfTheNextMonth),
                EventGroupings = eventGroupings,
                ShowGroupingCaptions = eventGroupings.Count() > 1,
                HasEventsToShow = eventGroupings.Any(eg => eg.Events.Any(e => !e.IsShowImmediateHidden)),
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    BreadcrumbHelper.GetBreadcrumbXtracurEventsItem(xtracurDivision, true)
                }
            });
        }
        public new static XtracurEventsIndexWeekViewModel Build(XtracurDivision xtracurDivision, DateTime?fromDate,
                                                                int?showImmediateEventId, int?showImmediateRecurrenceIndex)
        {
            var language             = CultureHelper.CurrentLanguage;
            var weekFromDate         = DateTimeHelper.GetWeekStart(fromDate);
            var weekToDate           = weekFromDate.AddDays(7);
            var previousWeekFromDate = weekFromDate.AddDays(-7);
            var nextWeekFromDate     = weekFromDate.AddDays(7);
            var currentWeekFromDate  = DateTimeHelper.GetWeekStart(DateTime.Today);
            var events   = EventsViewModelHelper.GetXtracurEvents(xtracurDivision, weekFromDate, weekToDate, showImmediateEventId, showImmediateRecurrenceIndex).ToList();
            var weekDays = events.Where(e => e.Start >= weekFromDate)
                           .GroupBy(vm => vm.Start.Date)
                           .OrderBy(g => g.Key)
                           .Select(g => EventsDayViewModel.Build(g.Key, g.AsEnumerable()));
            var earlierEvents = events.Where(e => e.Start < weekFromDate);

            return(new XtracurEventsIndexWeekViewModel
            {
                Alias = xtracurDivision.Alias,
                Title = xtracurDivision.GetNameByLanguage(language),
                EarlierEvents = earlierEvents,
                Days = weekDays,
                WeekDisplayText = DateTimeHelper.GetWeekDisplayText(language, weekFromDate, weekToDate),
                PreviousWeekMonday = DateTimeHelper.GetDateStringForWeb(previousWeekFromDate),
                WeekMonday = DateTimeHelper.GetDateStringForWeb(weekFromDate),
                NextWeekMonday = DateTimeHelper.GetDateStringForWeb(nextWeekFromDate),
                IsCurrentWeekReferenceAvailable = (currentWeekFromDate != weekFromDate),
                HasEventsToShow = events.Any(e => !e.IsShowImmediateHidden),
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    BreadcrumbHelper.GetBreadcrumbXtracurEventsItem(xtracurDivision, true)
                }
            });
        }
Beispiel #3
0
        public static StudyProgramShowViewModel Build(IEnumerable <StudyProgram> studyPrograms, PublicDivision publicDivision)
        {
            var firstStudyProgram = studyPrograms.First();
            var session           = firstStudyProgram.Session;

            var admissionYear = firstStudyProgram.AdmissionYear;
            var language      = CultureHelper.CurrentLanguage;

            var currentStudyYear  = StudyYearHelper.GetDefaultCurrentStudyYear(session);
            var previousStudyYear = StudyYearHelper.GetPreviousStudyYear(session);
            var studentGroups     = GetStudentGroups(studyPrograms);
            var studentGroupsForCurrentStudyYear  = studentGroups.Where(sg => sg.CurrentStudyYear == currentStudyYear);
            var studentGroupsForPreviousStudyYear = previousStudyYear.IsWebAvailable ? studentGroups.Where(sg => sg.CurrentStudyYear == previousStudyYear) : new List <StudentGroup>();

            return(new StudyProgramShowViewModel
            {
                StudyProgramDisplayText = GetStudyProgramDisplayText(firstStudyProgram),
                AdmissionYearText = GetAdmissionYearText(admissionYear),
                StudentGroupsForCurrentStudyYear = studentGroupsForCurrentStudyYear.Select(sg => StudentGroupItemViewModel.Build(sg, publicDivision)),
                StudentGroupsForPreviousStudyYear = studentGroupsForPreviousStudyYear.Select(sg => StudentGroupItemViewModel.Build(sg, publicDivision)),
                CurrentStudyYearDisplayText = currentStudyYear.GetDisplayNameByLanguage(language),
                PreviousStudyYearDisplayText = previousStudyYear.GetDisplayNameByLanguage(language),
                PublicDivisionAlias = publicDivision.Alias,
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    BreadcrumbHelper.GetBreadcrumbPublicDivisionItem(publicDivision, false),
                    BreadcrumbHelper.GetBreadcrumbCourseItem(publicDivision, firstStudyProgram, true),
                }
            });
        }
Beispiel #4
0
 public static Breadcrumb GetBreadcrumb(PublicDivision publicDivision, StudyProgram studyProgram)
 {
     return(new Breadcrumb()
     {
         BreadcrumbHelper.GetBreadcrumbRootItem(false),
         BreadcrumbHelper.GetBreadcrumbPublicDivisionItem(publicDivision, false),
         BreadcrumbHelper.GetBreadcrumbCourseItem(publicDivision, studyProgram, false),
         BreadcrumbHelper.GetBreadcrumbTimeTableItem()
     });
 }
Beispiel #5
0
        public static XtracurEventsSearchViewModel Build(XtracurDivision xtracurDivision, string query, int?offset, bool?showPast)
        {
            LanguageCode language     = CultureHelper.CurrentLanguage;
            bool         isEmptyQuery = String.IsNullOrWhiteSpace(query);
            int          totalCount;
            var          today = DateTime.Today;
            IEnumerable <XtracurEventItemViewModel> events = Enumerable.Empty <XtracurEventItemViewModel>();

            if (!showPast.HasValue && !offset.HasValue)
            {
                var upcomingEvents = GetEvents(xtracurDivision, query, 0, today, DateTimeHelper.MaxValue, out totalCount);
                if (upcomingEvents.Any())
                {
                    events   = upcomingEvents;
                    showPast = false;
                }
                else
                {
                    var pastEvents = GetEvents(xtracurDivision, query, 0, DateTimeHelper.MinValue, today.AddDays(1), out totalCount);
                    if (pastEvents.Any())
                    {
                        events   = pastEvents;
                        showPast = true;
                    }
                }
            }
            else
            {
                var fromDate = showPast.Value ? DateTimeHelper.MinValue : today;
                var toDate   = showPast.Value ? today.AddDays(1) : DateTimeHelper.MaxValue;
                events = GetEvents(xtracurDivision, query, offset ?? 0, fromDate, toDate, out totalCount);
            }
            IEnumerable <XtracurEventsSearchPagerItemViewModel> pagerItems = GeneratePagerItems(offset ?? 0, (totalCount - 1) / ItemsOnPageCount + 1);

            return(new XtracurEventsSearchViewModel
            {
                Alias = xtracurDivision.Alias,
                Title = xtracurDivision.GetNameByLanguage(language),
                Events = events,
                PagerItems = pagerItems,
                ShowPager = pagerItems.Any(pi => pi.IsEnabled && !pi.IsActive),
                ShowPast = showPast ?? false,
                ShowUpcoming = showPast.HasValue ? !(showPast ?? false) : false,
                IsEmptyQuery = isEmptyQuery,
                Offset = offset ?? 0,
                QueryDisplayText = query,
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    BreadcrumbHelper.GetBreadcrumbXtracurEventsItem(xtracurDivision, false),
                    BreadcrumbHelper.GetBreadcrumbXtracurSearchItem(true)
                }
            });
        }
 public static DivisionIndexViewModel Build(IEnumerable <PublicDivision> publicDivisions)
 {
     return(new DivisionIndexViewModel
     {
         Divisions = publicDivisions.Select(pd => DivisionItemViewModel.Build(pd)),
         Breadcrumb = new Breadcrumb
         {
             BreadcrumbHelper.GetBreadcrumbRootItem(true)
         }
     });
 }
Beispiel #7
0
 public static EducatorEventsIndexViewModel Build(Session session, string educatorLastNameQuery)
 {
     return(new EducatorEventsIndexViewModel
     {
         EducatorLastNameQuery = educatorLastNameQuery,
         Educators = EducatorEventsHelper.SearchEducatorsByLastName(session, educatorLastNameQuery),
         Breadcrumb = new Breadcrumb()
         {
             BreadcrumbHelper.GetBreadcrumbRootItem(false),
             BreadcrumbHelper.GetBreadcrumbEducatorsItem(true),
         }
     });
 }
        public static EducatorEventsShowAllViewModel Build(EducatorMasterPerson educatorMasterPerson, int?next)
        {
            bool         showNext                = next.HasValue && next.Value > 0;
            LanguageCode language                = CultureHelper.CurrentLanguage;
            string       educatorDisplayText     = educatorMasterPerson.GetDisplayNameByLanguage(language);
            string       educatorLongDisplayText = educatorMasterPerson.GetLongDisplayNameByLanguage(language);
            DateTime     summerTermBoundary      = new DateTime(DateTime.Now.Month == 1 ? DateTime.Now.Year - 1 : DateTime.Now.Year, 8, 1);
            DateTime     winterTermBoundary      = new DateTime(DateTime.Now >= summerTermBoundary && DateTime.Now.Month > 1 ? DateTime.Now.Year + 1 : DateTime.Now.Year, 2, 1);
            DateTime     nextSummerTermBoundary  = new DateTime(summerTermBoundary.Year + 1, summerTermBoundary.Month, summerTermBoundary.Day);
            DateTime     nextWinterTermBoundary  = new DateTime(winterTermBoundary.Year + 1, winterTermBoundary.Month, winterTermBoundary.Day);
            bool         isSpringTerm            = winterTermBoundary < DateTime.Now && DateTime.Now < summerTermBoundary;
            DateTime     fromDate                = showNext
                ? (isSpringTerm ? summerTermBoundary : winterTermBoundary)
                : (isSpringTerm ? winterTermBoundary : summerTermBoundary);
            DateTime toDate = showNext
                ? (isSpringTerm ? nextWinterTermBoundary : nextSummerTermBoundary)
                : (isSpringTerm ? summerTermBoundary : winterTermBoundary);
            string title = string.Format("{0} {1}", Resources.Resources.TimetableForEducator,
                                         educatorLongDisplayText);
            IEnumerable <StudyEventAggregatedDayItemViewModel> educatorEventsDays = StudyEventsViewModelHelper.GetEducatorAggregatedEventsDays(educatorMasterPerson, fromDate, toDate);

            return(new EducatorEventsShowAllViewModel
            {
                Next = next,
                From = fromDate,
                To = toDate,
                EducatorDisplayText = educatorDisplayText,
                EducatorLongDisplayText = educatorLongDisplayText,
                DateRangeDisplayText = string.Format("{0:d MMMM yyyy} - {1:d MMMM yyyy}", fromDate, toDate),
                Title = title,
                EducatorMasterId = educatorMasterPerson.Id,
                EducatorEventsDays = educatorEventsDays,
                IsSpringTerm = isSpringTerm,
                SpringTermLinkAvailable = isSpringTerm == showNext,
                AutumnTermLinkAvailable = isSpringTerm != showNext,
                HasEvents = educatorEventsDays.Any(seadivm => seadivm.DayStudyEvents.Any()),
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    BreadcrumbHelper.GetBreadcrumbEducatorsItem(false),
                    new BreadcrumbItem
                    {
                        IsActive = true,
                        DisplayText = educatorDisplayText,
                    }
                }
            });
        }
Beispiel #9
0
 public static HomeIndexViewModel Build(IEnumerable <PublicDivision> publicDivisions,
                                        IEnumerable <XtracurDivision> xtracurDivisions)
 {
     return(new HomeIndexViewModel
     {
         Divisions = publicDivisions.Select(pd => DivisionItemViewModel.Build(pd)),
         XtracurDivisions = xtracurDivisions
                            .Where(xd => xd.Alias != "PhysTraining")
                            .Select(xd => XtracurDivisionItemViewModel.Build(xd)),
         PhysTrainingDivisions = xtracurDivisions
                                 .Where(xd => xd.Alias == "PhysTraining")
                                 .Select(xd => XtracurDivisionItemViewModel.Build(xd)),
         Breadcrumb = new Breadcrumb
         {
             BreadcrumbHelper.GetBreadcrumbRootItem(true)
         }
     });
 }
        public static DivisionShowViewModel Build(PublicDivision publicDivision)
        {
            alias = publicDivision.Alias;
            var publicDivisionStudentGroups = publicDivision.StudentGroups;
            var language = CultureHelper.CurrentLanguage;

            var studyProgramNameLevelCombinations = publicDivisionStudentGroups.Where(sg => sg.StudyProgram != null)
                                                    .Select(sg => sg.StudyProgram)
                                                    .Distinct()
                                                    .GroupBy(sp => new {
                Name           = sp.GetNameByLanguage(language),
                StudyLevelName = sp.StudyLevel.GetNameByLanguage(language),
            })
                                                    .Select(g => new StudyProgramNameLevelCombination
            {
                Name           = g.Key.Name,
                StudyLevelName = g.Key.StudyLevelName,
                StudyPrograms  = g.AsEnumerable()
            })
                                                    .OrderBy(x => x.StudyLevelName);

            return(new DivisionShowViewModel
            {
                Title = GetTitle(publicDivision),
                StudyProgramsTitle = GetStudyProgramsTitle(studyProgramNameLevelCombinations),
                StudyProgramLevels = studyProgramNameLevelCombinations
                                     .GroupBy(x => x.StudyLevelName)
                                     .Select(g => StudyProgramLevelViewModel.Build(g.Key, g, publicDivision)),
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    new BreadcrumbItem
                    {
                        IsActive = true,
                        DisplayText = publicDivision.GetNameByLanguage(language)
                    }
                }
            });
        }
        public static EducatorEventsShowViewModel Build(EducatorMasterPerson educatorMasterPerson, DateTime?weekMonday)
        {
            LanguageCode language  = CultureHelper.CurrentLanguage;
            DateTime     weekStart = weekMonday.HasValue
                ? weekMonday.Value.AddDays(1 - (int)weekMonday.Value.DayOfWeek).Date
                : DateTime.Now.AddDays(1 - (int)DateTime.Now.DayOfWeek).Date;
            DateTime weekEnd                 = weekStart.AddDays(7);
            string   educatorDisplayText     = educatorMasterPerson.GetDisplayNameByLanguage(language);
            string   educatorFullDisplayText = educatorMasterPerson.GetLongDisplayNameByLanguage(language);

            return(new EducatorEventsShowViewModel
            {
                EducatorDisplayText = educatorDisplayText,
                EducatorFullDisplayText = educatorFullDisplayText,
                Title = string.Format("{0} {1}", Resources.Resources.TimetableForEducator, educatorFullDisplayText),
                EducatorMasterId = educatorMasterPerson.Id,
                EducatorEventsDays = StudyEventsViewModelHelper.GetEducatorEventsDayViewModels(educatorMasterPerson, weekStart, weekEnd),
                PreviousWeekMonday = weekStart.AddDays(-7).ToString("yyyy-MM-dd"),
                WeekStart = weekStart,
                WeekMonday = weekStart.ToString("yyyy-MM-dd"),
                NextWeekMonday = weekStart.AddDays(7).ToString("yyyy-MM-dd"),
                WeekDisplayText = language == LanguageCode.English
                    ? string.Format("{0:d MMMM} – {1:d MMMM}", weekStart, weekEnd.AddDays(-1))
                    : string.Format("{0:d MMMM} – {1:d MMMM}", weekStart, weekEnd.AddDays(-1)),
                IsCurrentWeekReferenceAvailable = weekStart != DateTime.Now.AddDays(1 - (int)DateTime.Now.DayOfWeek).Date,
                Breadcrumb = new Breadcrumb()
                {
                    BreadcrumbHelper.GetBreadcrumbRootItem(false),
                    BreadcrumbHelper.GetBreadcrumbEducatorsItem(false),
                    new BreadcrumbItem
                    {
                        IsActive = true,
                        DisplayText = educatorDisplayText,
                    }
                }
            });
        }