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);
        }