Beispiel #1
0
        private async void OnChangeDay(object input)
        {
            var newDay = (SessionDay?)input;

            if (newDay.HasValue)
            {
                SelectedDay = newDay.Value;
                SessionsPage.DayChanged(this, null);
                await LoadSessions(SelectedDay);
            }
        }
Beispiel #2
0
        public static SessionDayTO ToTransfertObject(this SessionDay sessionDay)
        {
            if (sessionDay == null)
            {
                throw new ArgumentNullException(nameof(sessionDay));
            }

            return(new SessionDayTO
            {
                Id = sessionDay.Id,
                Date = sessionDay.Date,
                PresenceType = sessionDay.PresenceType
            });
        }
Beispiel #3
0
 public SessionsViewModel(
     INavigationService navigationService,
     ISessionService sessionService,
     ISettingsService settingsService,
     IErrorRetryManager errorRetryManager)
 {
     IsBusy = false;
     DisplayOfflineNotice = true;
     SelectedDay          = SessionDay.Day1;
     NavigationService    = navigationService;
     SessionService       = sessionService;
     SettingsService      = settingsService;
     ErrorRetryManager    = errorRetryManager;
     SessionSelected      = new DelegateCommand <Session>(OnSessionSelected);
     ToggleAsFavorite     = new DelegateCommand <Session>(OnToggleAsFavorite);
     ToggleOfflineNotice  = new DelegateCommand(OnToggleOfflineNotice);
     ChangeDay            = new DelegateCommand <object>(OnChangeDay);
     Sessions             = new ObservableCollection <SessionList>();
 }
Beispiel #4
0
        private async Task LoadSessions(SessionDay currentDay)
        {
            if (_allSessions == null)
            {
                _allSessions = await SessionService.GetAsync();
            }

            var todaysSessions = _allSessions
                                 .Where(x => x.Day == (int)currentDay)
                                 .GroupBy(x => new { x.TimeSlotName, x.TimeSlot }, (key, group) =>
                                          new SessionList(key.TimeSlotName, key.TimeSlot,
                                                          group.Select(x => new Session
            {
                Title        = x.Title,
                Description  = x.Description,
                Room         = x.Room,
                Track        = x.Category.ToSessionTrack(),
                TimeSlotName = x.TimeSlotName,
                Day          = x.Day,
                TimeSlot     = x.TimeSlot,
                VideoLink    = x.VideoLink,
                Speakers     = x.Speakers.Select(s => new Speaker
                {
                    Name     = s.Name,
                    Bio      = s.Bio,
                    Headshot = ImageSource.FromStream(() => new MemoryStream(s.Photo))
                })
            })))
                                 .OrderBy(x => x.Heading);

            Sessions.Clear();

            foreach (var item in todaysSessions)
            {
                Sessions.Add(item);
            }

            ContentRetrieved = SettingsService.Get().LastUpdated;
        }