public async Task <GetTaskResponse> Handle(GetTaskRequest request, CancellationToken cancellationToken)
        {
            if (request.IsValid())
            {
                TaskDomain task = await _taskRepository.GetAsync(request.Id);

                return(_mapper.Map <GetTaskResponse>(task));
            }
            return(null);
        }
        public async Task <long> Handle(CreateTaskRequest request, CancellationToken cancellationToken)
        {
            if (request.IsValid())
            {
                TaskDomain task = _mapper.Map <TaskDomain>(request);
                await _taskRepository.AddAsync(task);

                return(task.Id);
            }
            return(-1);
        }
        public async Task <bool> Handle(PatchCompletedTaskRequest request, CancellationToken cancellationToken)
        {
            TaskDomain task = await _taskRepository.GetAsync(request.Id);

            if (task != null)
            {
                task.Completed = request.Completed;
                await _taskRepository.UpdateAsync(request.Id, task);

                return(true);
            }
            return(false);
        }
        public async Task <bool> Handle(UpdateTaskRequest request, CancellationToken cancellationToken)
        {
            if (request.IsValid())
            {
                TaskDomain currentTask = await _taskRepository.GetAsync(request.Id);

                if (currentTask != null)
                {
                    _mapper.Map(request, currentTask);
                    await _taskRepository.UpdateAsync(request.Id, currentTask);

                    return(true);
                }
            }
            return(false);
        }