示例#1
0
        public DayViewModel([NotNull] Day dayData, WeekType weekType, int parity,
                            [NotNull] LessonMenuItemsFactory menuItemsFactory, bool isTeacher, int holderId,
                            NavigationFlow navigationFlow, [CanBeNull] Group group)
        {
            if (dayData == null)
            {
                throw new ArgumentNullException("dayData");
            }
            if (menuItemsFactory == null)
            {
                throw new ArgumentNullException("menuItemsFactory");
            }

            _dayData        = dayData;
            _parity         = parity;
            _isTeacher      = isTeacher;
            _holderId       = holderId;
            _navigationFlow = navigationFlow;
            _group          = @group;
            _date           = SetUpDayName(weekType);
            NavigationFlow  = navigationFlow;

            if (_dayData.Lessons != null)
            {
                Lessons =
                    new ObservableCollection <LessonViewModel>(
                        FilterLessons(_dayData.Lessons, menuItemsFactory));
            }
            else
            {
                Lessons = new ObservableCollection <LessonViewModel>();
            }
        }
        public static BaseViewModel GetFacultiesPageViewModel(NavigationFlow navigationFlow)
        {
            var vm = Container.Resolve <FacultiesPageViewModel>();

            vm.Initialize(navigationFlow);
            return(vm);
        }
示例#3
0
        public void PublishTimtableNotFoundEvent([CanBeNull] NavigationFlow navigationFlow, Group group = null)
        {
            if (navigationFlow == null)
            {
                PublishEvent(FlurryEvents.TimetableNotFound);
                return;
            }
            var parameters = new List <EventParameter>
            {
                new EventParameter("University_name", navigationFlow.UniversityName),
                new EventParameter("University_id", navigationFlow.UniversityId.ToString(CultureInfo.InvariantCulture)),
            };

            if (navigationFlow.FacultyId != 0)
            {
                parameters.Add(new EventParameter("Faculty_id",
                                                  navigationFlow.FacultyId.ToString(CultureInfo.InvariantCulture)));
                parameters.Add(new EventParameter("Faculty_name", navigationFlow.FacultyName));
            }

            if (group != null)
            {
                parameters.Add(new EventParameter("Group_id", group.Id.ToString(CultureInfo.InvariantCulture)));
                parameters.Add(new EventParameter("Group_name", group.GroupName));
            }
            PublishEvent(FlurryEvents.TimetableNotFound, parameters.ToArray());
        }
示例#4
0
 public LessonViewModel([NotNull] Lesson lesson, [NotNull] LessonMenuItemsFactory menuItemsFactory, DateTime date,
                        NavigationFlow navigationFlow, [CanBeNull] Group group)
 {
     _lesson           = lesson;
     _date             = date;
     _navigationFlow   = navigationFlow;
     _group            = group;
     _menuItemsFactory = menuItemsFactory;
 }
        public AbstractMenuItem CreateUpdateLessonsDetails(NavigationFlow navigationFlow, [CanBeNull] Group group)
        {
            var changeLessonCommand = _commandFactory.GetUpdateLessonCommand(navigationFlow, group);

            return(new AbstractMenuItem
            {
                Command = changeLessonCommand,
                Header = changeLessonCommand.Title
            });
        }
示例#6
0
        public App()
        {
            InitializeComponent();

            var viewModel = new MainPageViewModel();
            var page      = new MainPage();

            page.BindingContext = viewModel;

            MainPage        = new NavigationPage(page);
            _navigationFlow = new NavigationFlow(MainPage.Navigation, viewModel);
        }
        private NavigationFlow CreateNavigationFlowForFlurry()
        {
            var navigationFlow = new NavigationFlow
            {
                UniversityId   = _university.Id,
                UniversityName = _university.Name,
                FacultyId      = _facultyId,
                IsTeacher      = _isTeacher
            };

            if (_faculty != null)
            {
                navigationFlow.FacultyName = _faculty.Title;
            }
            return(navigationFlow);
        }
示例#8
0
        public WeekViewModel(IEnumerable <Day> days, int weekNumber, [NotNull] DayViewModelFactory dayViewModelFactory,
                             WeekType type, NavigationFlow navigationFlow, [CanBeNull] Group group)
        {
            if (dayViewModelFactory == null)
            {
                throw new ArgumentNullException("dayViewModelFactory");
            }
            var parity = weekNumber % 2;

            WeekNumber = weekNumber;

            Days =
                new ObservableCollection <DayViewModel>(
                    dayViewModelFactory.CreateList(days, navigationFlow, @group, type, parity)
                    .Where(d => d.Lessons.Any()));
        }
示例#9
0
 public UpdateLessonCommand([NotNull] FlurryPublisher flurryPublisher,
                            [NotNull] IUiStringsProviders stringsProviders, NavigationFlow navigationFlow,
                            [CanBeNull] Group group)
 {
     if (flurryPublisher == null)
     {
         throw new ArgumentNullException("flurryPublisher");
     }
     if (stringsProviders == null)
     {
         throw new ArgumentNullException("stringsProviders");
     }
     _flurryPublisher  = flurryPublisher;
     _stringsProviders = stringsProviders;
     _navigationFlow   = navigationFlow;
     _group            = @group;
 }
        public override Uri MapUri(Uri uri)
        {
            Debug.WriteLine("UriMapper:MapUri for {0}", uri.OriginalString);
            if (!uri.OriginalString.Contains("/View/EntryPoint.xaml"))
            {
                return(uri);
            }

            if (_applicationSettings.Me.DefaultGroup != null || _applicationSettings.Me.Teacher != null)
            {
                var isTeacher           = _applicationSettings.Me.Teacher != null;
                var navigationParameter = new LessonsNavigationParameter
                {
                    Id           = isTeacher ? _applicationSettings.Me.Teacher.Id : _applicationSettings.Me.DefaultGroup.Id,
                    IsTeacher    = isTeacher,
                    UniversityId = _applicationSettings.Me.University.Id,
                    FacultyId    = _applicationSettings.Me.Faculty.Id
                };
                return(NavigationService.GetUri <NewLessonsPage, LessonsNavigationParameter>(navigationParameter));
            }

            var navigationFlow = new NavigationFlow();

            if (_applicationSettings.Me.Faculty != null)
            {
                navigationFlow.FacultyId      = _applicationSettings.Me.Faculty.Id;
                navigationFlow.UniversityId   = _applicationSettings.Me.University.Id;
                navigationFlow.UniversityName = _applicationSettings.Me.University.ShortName;
                navigationFlow.FacultyName    = _applicationSettings.Me.Faculty.Title;
                return(NavigationService.GetUri <NewGroupsPage, NavigationFlow>(navigationFlow));
            }
            if (_applicationSettings.Me.University != null)
            {
                navigationFlow.UniversityId   = _applicationSettings.Me.University.Id;
                navigationFlow.UniversityName = _applicationSettings.Me.University.ShortName;
                return(NavigationService.GetUri <NewFacultiesPage, NavigationFlow>(navigationFlow));
            }
            if (_applicationSettings.Me.Role != UserRole.None)
            {
                return(NavigationService.GetUri <NewUniversitiesPage, Reason>(Reason.Registration));
            }
            return(NavigationService.GetUri <FirstPage>());
        }
示例#11
0
 public ITitledCommand GetUpdateLessonCommand(NavigationFlow navigationFlow, [CanBeNull] Group group)
 {
     return(new UpdateLessonCommand(_flurryPublisher, _stringsProviders, navigationFlow, group));
 }
示例#12
0
 public WeekViewModel Create([CanBeNull] IEnumerable <Day> days, int weekNumber, WeekType weekType,
                             NavigationFlow navigationFlow, [CanBeNull] Group group)
 {
     return(new WeekViewModel(days, weekNumber, _dayViewModelFactory, weekType, navigationFlow, group));
 }
示例#13
0
 public IEnumerable <DayViewModel> CreateList([CanBeNull] IEnumerable <Day> models, NavigationFlow navigationFlow,
                                              Group group, WeekType type, int parity)
 {
     if (models == null)
     {
         return(Enumerable.Empty <DayViewModel>());
     }
     return(models.Select(
                day =>
                new DayViewModel(day, type, parity, _menuItemsFactory, _isTeacher, _holderId, navigationFlow, group)));
 }