Esempio n. 1
0
        public SiriShortcutsSelectReportPeriodViewModel(
            ITogglDataSource dataSource,
            IInteractorFactory interactorFactory,
            IRxActionFactory rxActionFactory,
            ISchedulerProvider schedulerProvider,
            INavigationService navigationService) : base(navigationService)
        {
            Ensure.Argument.IsNotNull(dataSource, nameof(dataSource));
            Ensure.Argument.IsNotNull(interactorFactory, nameof(interactorFactory));
            Ensure.Argument.IsNotNull(rxActionFactory, nameof(rxActionFactory));
            Ensure.Argument.IsNotNull(schedulerProvider, nameof(schedulerProvider));

            this.interactorFactory = interactorFactory;

            PickWorkspace = rxActionFactory.FromAsync(pickWorkspace);

            var reportPeriods = Enum.GetValues(typeof(ReportPeriod))
                                .Cast <ReportPeriod>()
                                .Where(p => p != ReportPeriod.Unknown)
                                .ToImmutableList();

            ReportPeriods = SelectReportPeriod
                            .Select(selectedPeriod => reportPeriods.Select(p => new SelectableReportPeriodViewModel(p, p == selectedPeriod)).ToImmutableList())
                            .AsDriver(ImmutableList <SelectableReportPeriodViewModel> .Empty, schedulerProvider);

            WorkspaceName = SelectedWorkspace
                            .Where(ws => ws != null)
                            .Select(workspace => workspace.Name)
                            .AsDriver(schedulerProvider);
        }
Esempio n. 2
0
        public override async Task Initialize()
        {
            await base.Initialize();

            var defaultWorkspace = await interactorFactory.GetDefaultWorkspace().Execute();

            SelectedWorkspace.Accept(defaultWorkspace);
        }
Esempio n. 3
0
 public bool IsGitSourceControlled(string localItemPath)
 {
     try
     {
         if (SelectedWorkspace == null || string.IsNullOrEmpty(SelectedWorkspace.TryGetServerItemForLocalItem(localItemPath)))
         {
             return(ServiceProvider.Get <DTE2>().SourceControl.IsItemUnderSCC(localItemPath) || GitHelper.IsGitControlled(localItemPath));
         }
         return(false);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Esempio n. 4
0
        private async Task pickWorkspace()
        {
            var defaultWorkspace = await interactorFactory.GetDefaultWorkspace()
                                   .TrackException <InvalidOperationException, IThreadSafeWorkspace>(
                "SiriShortcutsSelectReportPeriodViewModel.PickWorkspace")
                                   .Execute();

            var selectWorkspaceParams = new SelectWorkspaceParameters(Resources.SelectWorkspace, SelectedWorkspace.Value?.Id ?? defaultWorkspace.Id);
            var selectedWorkspaceId   =
                await Navigate <SelectWorkspaceViewModel, SelectWorkspaceParameters, long>(selectWorkspaceParams);

            var workspace = await interactorFactory.GetWorkspaceById(selectedWorkspaceId).Execute();

            SelectedWorkspace.Accept(workspace);
        }
        private async void SelectWorkspace()
        {
            await Task.Run(() =>
            {
                if (SelectedWorkspaceIndex > Workspaces.Count - 1)
                {
                    return;
                }

                SelectedWorkspace = Workspaces[SelectedWorkspaceIndex];
                if (!Directory.Exists(SelectedWorkspace.Workspace.Path))
                {
                    Messenger.Default.Send(new ShowMessageDialogMessage("Workspace folder not available", "The workspace folder seems to be deleted."));
                    return;
                }
                SelectedWorkspace.Init();

                SelectedTabIndex = 1;

                Logger.Debug("Selected workspace {0}", SelectedWorkspace.Workspace.Name);
            });
        }
        private async Task pickWorkspace()
        {
            var defaultWorkspaceId = SelectedWorkspace.Value?.Id ?? (await interactorFactory.GetDefaultWorkspace()
                                                                     .TrackException <InvalidOperationException, IThreadSafeWorkspace>(
                                                                         "SiriShortcutsSelectReportPeriodViewModel.PickWorkspace")
                                                                     .Execute()).Id;

            var allWorkspaces = await interactorFactory.GetAllWorkspaces().Execute();

            var selectWorkspaces       = allWorkspaces.Select(selectOptionFromWorkspace);
            var selectedWorkspaceIndex = allWorkspaces.IndexOf(ws => ws.Id == defaultWorkspaceId);

            var selectedWorkspace = await View.Select(Resources.Workspace, selectWorkspaces, selectedWorkspaceIndex);

            if (SelectedWorkspace.Value?.Id == selectedWorkspace.Id)
            {
                return;
            }

            SelectedWorkspace.Accept(selectedWorkspace);

            SelectOption <IThreadSafeWorkspace> selectOptionFromWorkspace(IThreadSafeWorkspace ws)
            => new SelectOption <IThreadSafeWorkspace>(ws, ws.Name);
        }