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) } }); }
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), } }); }
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() }); }
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) } }); }
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, } } }); }
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, } } }); }