public static Meeting ViewMeetingToModel(this ViewMeeting meet) { return(new Meeting { Id = meet.Id, DateStart = meet.DateStart, DateEnd = meet.DateEnd, RoomId = meet.RoomId }); }
public static ViewMeeting MeetingToView(this Meeting meet) { var vm = new ViewMeeting { Id = meet.Id, DateStart = meet.DateStart, DateEnd = meet.DateEnd, RoomId = meet.RoomId }; vm.Answers = meet.Answers?.Select(i => i.AnswerToView()).ToList(); return(vm); }
/// <summary> /// Init ourselves with a new meeting ref /// </summary> /// <param name="meetings"></param> public CategoryURIViewModel(IMeetingListRef meetings, IBlobCache cache = null) { cache = cache ?? Blobs.LocalStorage; // Get the list of items we are going to show. If there // is an error we should display it. MeetingList = new ReactiveList <IMeetingRefExtended>(); var meetingStream = meetings.FetchAndUpdateRecentMeetings(cache: cache) .Replay(1); meetingStream .OnErrorResumeNext(Observable.Empty <IMeetingRefExtended[]>()) .ObserveOn(RxApp.MainThreadScheduler) .Subscribe(m => SetMeetings(m)); var errorStream = new Subject <Exception>(); ErrorsVM = new ErrorUserControlViewModel(errorStream); meetingStream .Subscribe(_ => { }, except => errorStream.OnNext(except)); meetingStream .Select(_ => true) .ToProperty(this, x => x.IsReady, out _isReady, false, RxApp.MainThreadScheduler); meetingStream.Connect(); // When the user wants to view one of the meetings we are showing ViewMeeting = ReactiveCommand.Create(); MeetingToVisit = ViewMeeting .Select(m => m as IMeetingRefExtended) .Where(m => m != null) .Select(m => new MeetingPageViewModel(Locator.Current.GetService <IScreen>(), m.Meeting)); }