private void SetAvailableSessions(IOpenWindowViewModel openWindowViewModel, IReadOnlyCollection <SessionInfoDto> recentSessionInfos, IReadOnlyCollection <SessionInfoDto> archivedSessionInfoDtos, Func <SessionInfoDto, Task> openByDoubleClickCommand) { openWindowViewModel.ArchiveSessionsInfos = archivedSessionInfoDtos.OrderByDescending(x => x.SessionRunDateTime).Select(x => { IOpenWindowSessionInformationViewModel newViewModel = _viewModelFactory.Create <IOpenWindowSessionInformationViewModel>(); newViewModel.FromModel(x); newViewModel.IsArchiveIconVisible = false; newViewModel.SelectThisSessionCommand = new AsyncCommand(() => openByDoubleClickCommand(x)); newViewModel.OpenSessionFolderCommand = new AsyncCommand(() => OpenSessionFolder(x)); newViewModel.DeleteSessionCommand = new RelayCommand(() => DeleteSession(x, openWindowViewModel)); return(newViewModel); }).ToList(); openWindowViewModel.RecentSessionsInfos = recentSessionInfos.OrderByDescending(x => x.SessionRunDateTime).Select(x => { IOpenWindowSessionInformationViewModel newViewModel = _viewModelFactory.Create <IOpenWindowSessionInformationViewModel>(); newViewModel.FromModel(x); newViewModel.ArchiveCommand = new AsyncCommand(() => ArchiveSession(openWindowViewModel, x)); newViewModel.SelectThisSessionCommand = new AsyncCommand(() => openByDoubleClickCommand(x)); newViewModel.OpenSessionFolderCommand = new AsyncCommand(() => OpenSessionFolder(x)); newViewModel.DeleteSessionCommand = new RelayCommand(() => DeleteSession(x, openWindowViewModel)); newViewModel.IsArchiveIconVisible = archivedSessionInfoDtos.FirstOrDefault(y => x.Id == y.Id) == null; return(newViewModel); }).ToList(); }
private async Task AddSelectedRecentSession() { IOpenWindowSessionInformationViewModel selectedViewModel = _addWindowViewModel.SelectedTabIndex == 0 ? _addWindowViewModel.SelectedRecentSessionInfoDto : _addWindowViewModel.SelectedArchiveSessionInfoDto; if (selectedViewModel == null) { return; } await AddSession(selectedViewModel.OriginalModel); }