Beispiel #1
0
        public async Task <IResponse> Handle(RemoveItemBuyListCommand command)
        {
            command.Validate();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", command.Notifications));
            }

            var user = await _userRepository.GetById(command.OwnerId);

            if (user == null)
            {
                return(new GenericCommandResult(false, "Usuário inválido", user));
            }

            var item = await _itemRepository.GetById(command.ItemId);

            if (item == null)
            {
                return(new GenericCommandResult(false, "Item inválido", item));
            }

            var list = await _buyListRepository.GetById(command.BuyListId);

            if (list == null)
            {
                return(new GenericCommandResult(false, "Lista inválida", list));
            }

            if (list.Owner.Id != user.Id && item.Owner.Id != user.Id)
            {
                return(new GenericCommandResult(false, "Item e lista não pertencem ao usuário especificado!", null));
            }

            list.SubTotalValue(item);

            await _buyListRepository.RemoveItem(command.ItemId, command.BuyListId);

            return(new GenericCommandResult(true, "Ok", null));
        }
Beispiel #2
0
 public RemoveItemBuyListCommandTests()
 {
     _validCommand.Validate();
 }