示例#1
0
        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);
        }
示例#2
0
        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);
示例#4
0
        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);
        }
示例#5
0
        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"
            });
        }
示例#6
0
 public async Task ExecuteEditFavoredCommand(Favored favored)
 {
 }
 public static FavoredByIdModel Create(Favored customer)
 {
     return(Projection.Compile().Invoke(customer));
 }