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