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)); }
public RemoveItemBuyListCommandTests() { _validCommand.Validate(); }