示例#1
0
        public Task <bool> Handle(CadastrarEnderecoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var cliente = _clienteRepository.GetById(message.ClienteId);

            if (cliente == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Cliente não cadastrado.", message));
                return(Task.FromResult(false));
            }

            var clienteEndereco = new ClienteEndereco(Guid.NewGuid(), message.Cep, message.Logradouro, message.Numero, message.Complemento,
                                                      message.Bairro, message.Cidade, message.Estado, message.ComprovanteBase64, message.ClienteId);

            _clienteEnderecoRepository.Add(clienteEndereco);

            if (Commit())
            {
            }

            return(Task.FromResult(true));
        }
示例#2
0
        public void CadastrarEndereco(Guid clienteId, string cep, string logradouro, int numero, string complemento,
                                      string bairro, string cidade, string estado, string comprovanteBase64)
        {
            var cadastrarEnderecoCommand = new CadastrarEnderecoCommand(clienteId, cep, logradouro, numero, complemento,
                                                                        bairro, cidade, estado, comprovanteBase64);

            _bus.SendCommand(cadastrarEnderecoCommand);
        }
示例#3
0
        public void CadastrarEndereco(string codigoConvite, string numeroCelular, int tipoEndereco, string cep, string logradouro,
                                      int numero, string complemento, string bairro, string cidade, string estado,
                                      bool principal, string comprovanteBase64)
        {
            var cadastrarEnderecoCommand = new CadastrarEnderecoCommand(codigoConvite, numeroCelular, tipoEndereco, cep, logradouro,
                                                                        numero, complemento, bairro, cidade, estado,
                                                                        principal, comprovanteBase64);

            _bus.SendCommand(cadastrarEnderecoCommand);
        }
        public async Task <IActionResult> CriarEnderecoAsync([FromBody] CadastrarEnderecoCommand command)
        {
            var result = await _commandCadastrarEndereco.Handle(command).ConfigureAwait(true) as CommandResult;

            if (result.Success)
            {
                return(Ok());
            }
            else
            {
                return(UnprocessableEntity(result.Messages));
            }
        }
示例#5
0
        public Task <bool> Handle(CadastrarEnderecoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var onboarding = _onboardingRepository.Find(o => o.CodigoConvite.Equals(message.CodigoConvite) && o.NumeroCelular.Equals(message.NumeroCelular)).FirstOrDefault();

            if (onboarding == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Código do convite ou número de celular inválidos.", message));
                return(Task.FromResult(false));
            }

            if (onboarding.Consultor == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Consultor não cadastrado.", message));
                return(Task.FromResult(false));
            }

            if (message.Principal)
            {
                foreach (var item in onboarding.Consultor.Enderecos.Where(e => e.TipoEndereco.Equals((TipoEndereco)message.TipoEndereco)))
                {
                    item.Principal = false;
                }
            }

            var endereco = new Endereco(Guid.NewGuid(), (TipoEndereco)message.TipoEndereco, message.Cep, message.Logradouro, message.Numero,
                                        message.Complemento, message.Bairro, message.Cidade, message.Estado, message.Principal,
                                        message.ComprovanteBase64, onboarding.Consultor.Id);

            _enderecoRepository.Add(endereco);

            onboarding.StatusOnboarding = ((TipoEndereco)message.TipoEndereco).Equals(TipoEndereco.Consultor) ? StatusOnboarding.EnderecoCnpj : StatusOnboarding.EnderecoRepresentante;

            _onboardingRepository.Update(onboarding);

            if (Commit())
            {
            }

            return(Task.FromResult(true));
        }
        public async ValueTask <ICommandResult> Handle(CadastrarEnderecoCommand command)
        {
            if (!command.Validate())
            {
                AddNotifications(command);
                return(new CommandResult(false, base.Notifications));
            }

            var entity = new Endereco(command.CEP, command.Logradouro, command.Numero, command.Complemento, command.Cidade, command.Estado, command.ClienteId);

            await _enderecoRepository.Add(entity);

            var result = await _enderecoRepository.SaveChanges().ConfigureAwait(true);

            if (!result)
            {
                return(new CommandResult(false));
            }

            return(new CommandResult(true));
        }