示例#1
0
        //Persistir e atualizar um registro existente
        //Atualizar dados da Funcionario, Pessoa e lista de endereços
        private bool atualizar(Funcionario OFuncionario)
        {
            //Localizar existentes no banco
            Funcionario dbFuncionario = this.carregar(OFuncionario.id);

            if (dbFuncionario == null)
            {
                return(false);
            }

            Pessoa dbPessoa = db.Pessoa.FirstOrDefault(x => x.id == dbFuncionario.idPessoa);

            //Configurar valores padrão
            OFuncionario.setDefaultUpdateValues <Funcionario>();
            OFuncionario.Pessoa.setDefaultUpdateValues <Pessoa>();
            OFuncionario.idPessoa  = dbPessoa.id;
            OFuncionario.Pessoa.id = dbPessoa.id;

            //Atualizacao da Funcionario
            var FuncionarioEntry = db.Entry(dbFuncionario);

            FuncionarioEntry.CurrentValues.SetValues(OFuncionario);
            FuncionarioEntry.ignoreFields <Funcionario>();

            //Atualizacao Dados Pessoa
            var PessoaEntry = db.Entry(dbPessoa);

            PessoaEntry.CurrentValues.SetValues(OFuncionario.Pessoa);
            PessoaEntry.ignoreFields <Pessoa>();

            if (OFuncionario.Pessoa.listaEnderecos != null)
            {
                //Atualizacao da lista de endereços enviados
                foreach (var ItemEndereco in OFuncionario.Pessoa.listaEnderecos)
                {
                    var dbEndereco = dbPessoa.listaEnderecos.FirstOrDefault(e => e.id == ItemEndereco.id);

                    if (dbEndereco != null)
                    {
                        var EnderecoEntry = db.Entry(dbEndereco);

                        ItemEndereco.setDefaultUpdateValues <PessoaEndereco>();
                        EnderecoEntry.CurrentValues.SetValues(ItemEndereco);
                        EnderecoEntry.ignoreFields <PessoaEndereco>(new string[] { "idTipoEndereco", "idPessoa" });
                    }
                    else
                    {
                        ItemEndereco.idPessoa = OFuncionario.idPessoa;
                        ItemEndereco.setDefaultInsertValues <PessoaEndereco>();
                        db.PessoaEndereco.Add(ItemEndereco);
                    }
                }
            }

            db.SaveChanges();
            return(OFuncionario.id > 0);
        }
示例#2
0
        //Persistir e atualizar um registro existente
        //Atualizar dados da Devedor, Pessoa e lista de endereços
        private bool atualizar(Devedor ODevedor)
        {
            //Localizar existentes no banco
            Devedor dbDevedor = this.carregar(ODevedor.id);

            if (dbDevedor == null)
            {
                return(false);
            }

            Pessoa dbPessoa = db.Pessoa.FirstOrDefault(x => x.id == dbDevedor.idPessoa);

            //Configurar valores padrão
            ODevedor.setDefaultUpdateValues();
            ODevedor.Pessoa.setDefaultUpdateValues();
            ODevedor.idPessoa  = dbPessoa.id;
            ODevedor.Pessoa.id = dbPessoa.id;

            //Atualização do Devedor
            var DevedorEntry = db.Entry(dbDevedor);

            DevedorEntry.CurrentValues.SetValues(ODevedor);
            DevedorEntry.ignoreFields();

            //Atualização Dados Pessoa
            var PessoaEntry = db.Entry(dbPessoa);

            PessoaEntry.CurrentValues.SetValues(ODevedor.Pessoa);
            PessoaEntry.ignoreFields();

            //Atualização da lista de endereços enviados
            foreach (var ItemEndereco in ODevedor.Pessoa.listaEnderecos)
            {
                var dbEndereco = dbPessoa.listaEnderecos.FirstOrDefault(e => e.id == ItemEndereco.id);

                if (dbEndereco != null)
                {
                    var EnderecoEntry = db.Entry(dbEndereco);

                    ItemEndereco.setDefaultUpdateValues();
                    EnderecoEntry.CurrentValues.SetValues(ItemEndereco);
                    EnderecoEntry.ignoreFields(new[] { "idTipoEndereco", "idPessoa" });
                }
                else
                {
                    ItemEndereco.idPessoa = ODevedor.idPessoa;
                    ItemEndereco.setDefaultInsertValues();
                    db.PessoaEndereco.Add(ItemEndereco);
                }
            }

            db.SaveChanges();

            return(ODevedor.id > 0);
        }