Exemplo n.º 1
0
        public CondicaoPagamento Adicionar(CondicaoPagamento condicaoPagamento)
        {
            if (!condicaoPagamento.EhValido(_condicaoPagamentoRepositorio))
            {
                return(condicaoPagamento);
            }

            return(_condicaoPagamentoRepositorio.Adicionar(condicaoPagamento));
        }
Exemplo n.º 2
0
        public override Representada Atualizar(Representada representada)
        {
            Representada existingRepresentada = Db.Representadas.
                                                Include("CondicoesPagamento").Include("ContatosRepresentada")
                                                .Where(r => r.RepresentadaId == representada.RepresentadaId).FirstOrDefault <Representada>();

            List <CondicaoPagamento>   deletedCondicoesPagamento = existingRepresentada.CondicoesPagamento.Except(representada.CondicoesPagamento, c => c.CondicaoPagamentoId).ToList <CondicaoPagamento>();
            List <ContatoRepresentada> deletedContatos           = existingRepresentada.ContatosRepresentada.Except(representada.ContatosRepresentada, c => c.ContatoRepresentadaId).ToList <ContatoRepresentada>();


            List <CondicaoPagamento>   addedCondicoesPagamento = representada.CondicoesPagamento.Except(existingRepresentada.CondicoesPagamento, c => c.CondicaoPagamentoId).ToList <CondicaoPagamento>();
            List <ContatoRepresentada> addedContatos           = representada.ContatosRepresentada.Except(existingRepresentada.ContatosRepresentada, c => c.ContatoRepresentadaId).ToList <ContatoRepresentada>();

            if (deletedCondicoesPagamento.Count() > 0 || deletedContatos.Count() > 0)
            {
                deletedCondicoesPagamento.ForEach(c => { existingRepresentada.CondicoesPagamento.Remove(c); _condicaoPagamentoRepositorio.Remover(c.CondicaoPagamentoId); });
                deletedContatos.ForEach(c => { existingRepresentada.ContatosRepresentada.Remove(c); _contatoRepresentadaRepositorio.Remover(c.ContatoRepresentadaId); });
            }

            if (addedCondicoesPagamento.Count() > 0 || addedContatos.Count() > 0)
            {
                foreach (ContatoRepresentada c in addedContatos)
                {
                    c.RepresentadaId = representada.RepresentadaId;
                    if (Db.Entry(c).State == System.Data.Entity.EntityState.Detached)
                    {
                        Db.ContatosRepresentada.Attach(c);
                    }

                    _contatoRepresentadaRepositorio.Adicionar(c);
                }


                foreach (CondicaoPagamento c in addedCondicoesPagamento)
                {
                    c.RepresentadaId = representada.RepresentadaId;
                    if (Db.Entry(c).State == System.Data.Entity.EntityState.Detached)
                    {
                        Db.CondicoesPagamento.Attach(c);
                    }

                    _condicaoPagamentoRepositorio.Adicionar(c);
                }
            }

            Db.Set <Representada>().AddOrUpdate(representada);

            List <ContatoRepresentada> modifiedContatos           = representada.ContatosRepresentada.Except(addedContatos, c => c.ContatoRepresentadaId).ToList <ContatoRepresentada>();
            List <CondicaoPagamento>   modifiedCondicoesPagamento = representada.CondicoesPagamento.Except(addedCondicoesPagamento, c => c.CondicaoPagamentoId).ToList <CondicaoPagamento>();

            foreach (var item in modifiedContatos)
            {
                item.RepresentadaId = representada.RepresentadaId;
                Db.Set <ContatoRepresentada>().AddOrUpdate(item);
            }

            foreach (var item in modifiedCondicoesPagamento)
            {
                item.RepresentadaId = representada.RepresentadaId;
                Db.Set <CondicaoPagamento>().AddOrUpdate(item);
            }

            return(existingRepresentada);
        }