public void GivenAInvalidFavoredShouldReturnNotification() { var empty = new Favored(Guid.NewGuid(), new Name(string.Empty), null); var minLen = new Favored(Guid.NewGuid(), new Name("1"), new FavoredType(Guid.NewGuid(), new Description("Descrição de Teste"))); var maxLen = new Favored(Guid.NewGuid(), new Name("12345678910123456789101234567891012345678910123456789101234567891012345678910"), new FavoredType(Guid.NewGuid(), new Description("Descrição de Teste"))); Assert.IsFalse(empty.Valid); Assert.IsFalse(minLen.Valid); Assert.IsFalse(maxLen.Valid); }
public Task <bool> Handle(RegisterNewFavoredCommand command) { var entity = new Favored( Guid.NewGuid(), new Name(command.Name), _favoredTypeRepository.Get(command.FavoredType) ); AddNotifications(entity); if (Invalid) { return(Task.FromResult(true)); } _favoredRepository.Create(entity); _uow.Commit(); return(Task.FromResult(true)); }
public static FavoredsByUserIdModel Create(Favored customer) => Projection.Compile().Invoke(customer);
public void GivenAValidFavoredShouldReturnOk() { var fine = new Favored(Guid.NewGuid(), new Name("Carlos Alberto"), new FavoredType(Guid.NewGuid(), new Description("Descricao de teste"))); Assert.IsTrue(fine.Valid); }
public async Task <JsonDefaultResponse> Handle(CreateFavored request, CancellationToken cancellationToken) { bool registerAuthorized = false; try { var favoredAlreadyRegistered = await _context.Favored .Where(f => f.TaxNumber == request.TaxNumber && f.Status == Status.Active && f.BelongsToUserId == request.BelongToUserId) .ToListAsync(); if (favoredAlreadyRegistered.Count == 0) { registerAuthorized = true; } else { if (request.Account != null) { foreach (var favored in favoredAlreadyRegistered) { var favoredAccounts = await _context.FavoredHasAccount .Where(fha => fha.FavoredId == favored.Id) .Select(fha => fha.Account) .ToListAsync(); if (favoredAccounts.Count > 0) { var favoredAccount = favoredAccounts .Where(a => a.BankAccount == request.Account.BankAccount) .SingleOrDefault(); if (favoredAccount != null) { return new JsonDefaultResponse { Success = false, Message = "Já existe um favorecido cadastrado com essa conta no sistema" } } ; } } registerAuthorized = true; } else { foreach (var favored in favoredAlreadyRegistered) { var favoredAccounts = await _context.FavoredHasAccount .Where(fha => fha.FavoredId == favored.Id) .Select(fha => fha.Account) .ToListAsync(); if (favoredAccounts.Count > 0) { var favoredAccount = favoredAccounts .Where(a => a.BankAccount == request.Account.BankAccount) .SingleOrDefault(); if (favoredAccount == null) { return new JsonDefaultResponse { Success = false, Message = "Um favorecido igual a esse sem conta cadastrada já foi registrado no sistema" } } ; } } registerAuthorized = true; } } } catch (Exception ex) { return(new JsonDefaultResponse { Success = false, Message = "Houve um problema em validar o favorecido antes de cadastrá-lo." }); } if (registerAuthorized) { var favored = new Favored { BelongsToUserId = request.BelongToUserId, Name = request.Name, TaxNumber = request.TaxNumber, Status = Status.Active }; if (request.Account.BankAccount != null) { var account = new Account { Bank = request.Account.BankAccount.Value, BankBranch = request.Account.BankBranch.Value, BankAccount = request.Account.BankAccount.Value, BankAccountDigit = request.Account.BankAccountDigit.Value, Status = Status.Active }; var favored_has_account = new FavoredHasAccount { FavoredId = favored.Id, AccountId = account.Id }; try { _context.Account.Add(account); _context.FavoredHasAccount.Add(favored_has_account); } catch (Exception ex) { return(new JsonDefaultResponse { Success = false, Message = "Algo deu errado no servidor. Por favor, tente novamente mais tarde" }); } } try { _context.Favored.Add(favored); await _context.SaveChangesAsync(cancellationToken); await _mediator.Publish(new FavoredCreated { Id = favored.Id }, cancellationToken); } catch (Exception ex) { return(new JsonDefaultResponse { Success = false, Message = "Algo deu errado no servidor. Por favor, tente novamente mais tarde" }); } return(new JsonDefaultResponse { Success = true, Message = "Favorecido cadastrado com sucesso!" }); } return(new JsonDefaultResponse { Success = false, Message = "Erro na criação do favorecido. Por favor, revise os dados enviados e tente novamente" }); }
public async Task ExecuteEditFavoredCommand(Favored favored) { }
public static FavoredByIdModel Create(Favored customer) { return(Projection.Compile().Invoke(customer)); }