コード例 #1
0
        public async Task <RetornoControllerViewModel <ExibicaoMensagemViewModel, List <Guid> > > AdicionarCliente(ClienteAdicionarViewModel clienteAdicionar, Guid idOrganizacao)
        {
            RetornoControllerViewModel <ExibicaoMensagemViewModel, List <Guid> > retornoController = new RetornoControllerViewModel <ExibicaoMensagemViewModel, List <Guid> >();

            var pessoa = await _unitOfWork.GetRepositoryAsync <Pessoa>().GetOne(x =>
                                                                                x.Id == clienteAdicionar.IdPessoa &&
                                                                                x.Organizacoes.Any(y => y.IdOrganizacao == idOrganizacao && y.IdPessoa == x.Id));


            if (pessoa == null)
            {
                ExibicaoMensagemViewModel exibicaoMensagem = new ExibicaoMensagemViewModel
                {
                    Cabecalho     = "Pessoa inválida",
                    MensagemCurta = "Pessoa inválida",
                    Detalhes      = "Pessoa não foi encontrada.",
                    StatusCode    = StatusCodes.Status400BadRequest
                };

                retornoController.ExibicaoMensagem = exibicaoMensagem;
                return(retornoController);
            }

            Cliente cliente = new Cliente()
            {
                Nome          = clienteAdicionar.Nome,
                DataCriacao   = DateTime.Now,
                DataEdicao    = DateTime.Now,
                IdOrganizacao = idOrganizacao
            };

            var existeCliente = await _unitOfWork.GetRepositoryAsync <Cliente>().GetOne(x => x.Id == clienteAdicionar.IdCliente && x.IdOrganizacao == idOrganizacao);

            if (existeCliente == null)
            {
                await _unitOfWork.GetRepositoryAsync <Cliente>().Insert(cliente);

                PessoaCliente pessoaCliente = new PessoaCliente()
                {
                    Cliente       = cliente,
                    Pessoa        = pessoa,
                    DataInicio    = clienteAdicionar.DataInicio,
                    DataFim       = clienteAdicionar.DataFim,
                    Status        = true,
                    DataCriacao   = DateTime.Now,
                    DataEdicao    = DateTime.Now,
                    IdOrganizacao = idOrganizacao
                };
                await _unitOfWork.GetRepositoryAsync <PessoaCliente>().Insert(pessoaCliente);
            }
            else
            {
                var existeRelacao = await _unitOfWork.GetRepositoryAsync <PessoaCliente>()
                                    .GetOne(x => x.IdPessoa == clienteAdicionar.IdPessoa &&
                                            x.IdCliente == existeCliente.Id &&
                                            x.IdOrganizacao == idOrganizacao);

                if (existeRelacao == null)
                {
                    PessoaCliente pessoaCliente = new PessoaCliente()
                    {
                        Cliente       = existeCliente,
                        Pessoa        = pessoa,
                        DataInicio    = clienteAdicionar.DataInicio,
                        DataFim       = clienteAdicionar.DataFim,
                        Status        = true,
                        DataCriacao   = DateTime.Now,
                        DataEdicao    = DateTime.Now,
                        IdOrganizacao = idOrganizacao
                    };
                    await _unitOfWork.GetRepositoryAsync <PessoaCliente>().Insert(pessoaCliente);

                    await _unitOfWork.SaveAsync();
                }
                else
                {
                    return(null);
                }
            }
            await _unitOfWork.SaveAsync();

            retornoController.Objeto = new List <Guid>()
            {
                { pessoa.Id }, { cliente.Id }
            };
            return(retornoController);
        }
コード例 #2
0
 public void recebeCliente(PessoaCliente cliente)
 {
     PessoaCliente clienteRecebido = cliente;
 }