Пример #1
0
        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); });
        }
Пример #4
0
        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;
            });
        }