private async Task RemoveTask(TaskModel item) { IsBusy = true; item.IsDeleted = true; await _taskAPiService.SaveToDoItemAsync(_taskMapper.Convert(item)); await LoadData(); IsBusy = false; }
private async Task LoadData() { IsBusy = true; var tasks = await _taskAPiService.FindDeletedItemsAsync(); Tasks = new ObservableCollection <TaskModel>(_taskMapper.Convert(tasks)); IsBusy = false; }
public CreateTaskPageViewModel(INavigationService navigationService, IEventAggregator eventAggregator, ITaskService taskAPiService) : base(navigationService, eventAggregator) { _taskAPiService = taskAPiService; _saveTaskCommand = new DelegateCommand(async() => await SaveTask(), CanSaveExecuted); _goBackCommand = new DelegateCommand(async() => { await NavigationService.GoBackAsync(); }); _deleteTaskCommand = new DelegateCommand(async() => { var result = await Application.Current.MainPage.DisplayAlert( "Delete Task", "Delete the selected task?", "Yes", "No"); if (result) { await _taskAPiService.DeleteToDoItemAsync(Model.ID.ToString()); GoBackCommand.Execute(); } }, () => { return(Model != null && Model.IsValid); }); _resetTaskCommand = new DelegateCommand(async() => { var obj = await _taskAPiService.FindByIdAsync(Model.ID.ToString()); if (obj == null) { Model.Name = string.Empty; Model.Description = string.Empty; Model.Start = DateTime.Now; Model.End = DateTime.Now.AddDays(30); } else { Model = _taskMapper.Convert(obj); } }, () => { return(Model != null); }); }
public ToDoPageViewModel(INavigationService navigationService, IEventAggregator eventAggregator, ITaskService taskAPiService, ITaskMapper taskMapper) : base(navigationService, eventAggregator) { _taskAPiService = taskAPiService; _taskMapper = taskMapper; _goToCreateTaskPageCommand = new DelegateCommand(async() => { await NavigationService.NavigateAsync("CreateTaskPage"); }); _refreshTaskPageCommand = new DelegateCommand(async() => { _selectedSchedule = null; await LoadData(); }); _loadPageCommand = new DelegateCommand(async() => await LoadData()); EventAggregator.GetEvent <AddTaskEvent>().Subscribe(item => AddTask(item)); EventAggregator.GetEvent <RemoveTaskEvent>().Subscribe(async(item) => { await RemoveTask(item); } ); EventAggregator.GetEvent <EditTaskEvent>().Subscribe(async(item) => { await NavigateToEditPage(item); } ); EventAggregator.GetEvent <CloneTaskEvent>().Subscribe(async(item) => { IsBusy = true; var cloneObj = _taskMapper.Convert(item); cloneObj.Name += "_cloned"; cloneObj.ID = Guid.Empty; await _taskAPiService.SaveToDoItemAsync(cloneObj); await LoadData(); } ); eventAggregator.GetEvent <OpenScheduleEvent>().Subscribe((item) => { _selectedSchedule = item; }); }