Exemplo n.º 1
0
        public async Task HandleAsync(TodoTask task)
        {
            var prev = await repository.GetById(task.Id);

            await valdiator.ValidateAndThrow(task);

            await repository.UpdateAsync(task.ToEntity());
        }
Exemplo n.º 2
0
        public async Task HandleAsync(string id)
        {
            var task = await repository.GetById(id);

            await validator.ValidateAndThrow(task);

            await repository.DeleteAsync(task);
        }
Exemplo n.º 3
0
        public async Task ValidateAndThrow(TodoTask context)
        {
            var prev = await repository.GetById(context.Id);

            if (prev == null)
            {
                throw new TodoListValidationException($"Task was not found");
            }

            if (string.IsNullOrWhiteSpace(context.Id))
            {
                throw new TodoListValidationException($"{nameof(TodoTask.Id)} can't be empty");
            }

            if (string.IsNullOrWhiteSpace(context.Name))
            {
                throw new TodoListValidationException($"{nameof(TodoTask.Name)} can't be empty");
            }

            if (context.Priority <= 0)
            {
                throw new TodoListValidationException($"{nameof(TodoTask.Priority)} must be positive");
            }
        }