private async void OnChangeDay(object input) { var newDay = (SessionDay?)input; if (newDay.HasValue) { SelectedDay = newDay.Value; SessionsPage.DayChanged(this, null); await LoadSessions(SelectedDay); } }
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 }); }
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>(); }
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; }