public ProjectsViewModel()

in WindowsSmartInk/SmartInkLaboratory/ViewModels/ProjectsViewModel.cs [96:143]


        public ProjectsViewModel(IProjectService projects, IAppStateService state, IDialogService dialog)
        {
            _projects = projects;
            _state = state;
            _dialog = dialog;


            _state.KeysChanged += async (s,e) =>
            {
                await LoadAsync();
            };

            this.ShowCreate = new RelayCommand(() => { IsCreating = true; });

            this.SelectProject = new RelayCommand<Project>((project) => {
                if (project == null )
                    return;

                _state.CurrentProject = project;
                _state.SetCurrentPackage(null);
                ApplicationData.Current.LocalSettings.Values["LastProject"] = _state.CurrentProject.Name;
            });

            this.CreateProject = new RelayCommand<string>(async(project) => {
                if (string.IsNullOrWhiteSpace(project))
                    return;

                var newProject = await _projects.CreateProjectAsync(project);
                ProjectsList.Add(newProject);
                CurrentProject = newProject;
                IsCreating = false;
            });
            this.ManageProjects = new RelayCommand(async () => {
                await _dialog.OpenAsync(DialogKeys.ManageProjects,this);
            });
            this.DeleteProject = new RelayCommand<Project>(async (project) => {
                Debug.WriteLine($"Delete {project.Name}");
                var confirm = await _dialog.ConfirmAsync("Confirm", $"Are you sure you want to delete {project.Name}?", "Yes", "No");

                if (!confirm)
                    return;

                await _projects.DeleteProjectAsync(project.Id);
                if (CurrentProject.Id == project.Id)
                    CurrentProject = null;
                ProjectsList.Remove(project);
            });
        }