コード例 #1
0
        public override Empresa Delete(params object[] key)
        {
            if (_db.Negociacoes.Any(x => x.EmpresaId == (int)key[0]))
            {
                throw new Exception("Existem negociações cadastradas para essa empresa!");
            }
            if (_db.Litigios.Any(x => x.EmpresaId == (int)key[0]))
            {
                throw new Exception("Existem litígios cadastrados para essa empresa!");
            }

            _arquivosService.DeleteFiles(DependencyFileType.Empresa, (int)key[0]);
            _contatosEmpresaService.Query(x => x.EmpresaId == (int)key[0])
            .ToList().ForEach(x => _contatosService.Delete(x.ContatoId));
            return(base.Delete(key));
        }
コード例 #2
0
        public override RodadaNegociacao Delete(params object[] key)
        {
            _arquivosService.DeleteFiles(DependencyFileType.RodadaNegociacao, (int)key[0]);
            RodadaNegociacao rodada = Find(key);

            _db.Entry(rodada).Reference(r => r.Negociacao).Load();
            rodada.Negociacao.QtdaRodadas--;

            _db.RodadasNegociacoes.Where(x => x.Numero > rodada.Numero)
            .ToList().ForEach(r =>
            {
                r.Numero--;
                Update(r, r.Id);
            });
            _db.SaveChanges();
            return(base.Delete(key));
        }
コード例 #3
0
        public override ItemLitigio Delete(params object[] key)
        {
            ItemLitigio item = Find(key);

            if (item == null)
            {
                throw new NotFoundException("Item de Litígio não encontrado!");
            }
            _db.Entry(item).Reference(i => i.PlanoAcao).Load();

            if (item.PlanoAcao != null)
            {
                _planosService.Delete(item.PlanoAcao.Id);
            }
            _arquivosService.DeleteFiles(DependencyFileType.ItemLitigio, item.Id);
            _db.ItensLitigios.Remove(item);
            _db.SaveChanges();
            return(item);
        }
コード例 #4
0
        public override SindicatoPatronal Delete(params object[] key)
        {
            if (_db.Empresas.Any(x => x.SindicatoPatronalId == (int)key[0]))
            {
                throw new Exception("Existem empresas relacionadas à esse sindicato!");
            }
            if (_db.Negociacoes.Any(x => x.SindicatoPatronalId == (int)key[0]))
            {
                throw new Exception("Existem negociações relacionadas à esse sindicato!");
            }
            if (_db.Litigios.Any(x => x.PatronalId == (int)key[0]))
            {
                throw new Exception("Existem litígios relacionados à esse sindicato!");
            }

            /*if (_db.PlanosAcao.Any(x => x.PatronalId == (int)key[0]))
             *  throw new Exception("Existem planos de ações relacionados à esse sindicato!");*/

            _arquivosService.DeleteFiles(DependencyFileType.SindicatoPatronal, (int)key[0]);
            _contatosSindService.Query(x => x.SindicatoPatronalId == (int)key[0])
            .ToList().ForEach(x => _contatosService.Delete(x.ContatoId));
            return(base.Delete(key));
        }
コード例 #5
0
        public override Negociacao Delete(params object[] key)
        {
            Negociacao negociacao = Find(key);

            if (negociacao == null)
            {
                throw new NotFoundException();
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                try
                {
                    // Remove os concorrentes e seus reajustes
                    _db.Concorrentes.Where(c => c.NegociacaoId == (int)key[0])
                    .ToList().ForEach(c =>
                    {
                        _db.Reajustes.Remove(_db.Reajustes.Find(c.ReajusteId));
                        _db.Concorrentes.Remove(c);
                    });

                    // Remove as rodadas
                    _rodadasService.Delete(r => r.NegociacaoId == (int)key[0]);

                    // Remove os reajustes
                    if (negociacao.OrcadoId.HasValue)
                    {
                        _reajustesService.Delete(negociacao.OrcadoId.Value);
                    }

                    if (negociacao.NegociadoId.HasValue)
                    {
                        _reajustesService.Delete(negociacao.NegociadoId.Value);
                    }

                    _arquivosService.DeleteFiles(DependencyFileType.Negociacao, (int)key[0]);

                    // Remove o relatório
                    Relatorio relatorio = _db.Relatorios
                                          .Where(x => x.NegociacaoId == (int)key[0])
                                          .Include(r => r.GruposPerguntas)
                                          .ThenInclude(g => g.Respostas)
                                          .FirstOrDefault();
                    if (relatorio != null)
                    {
                        foreach (GrupoPergunta grupo in relatorio.GruposPerguntas)
                        {
                            foreach (RespostaRelatorio resposta in grupo.Respostas)
                            {
                                _db.RespostasRelatorio.Remove(resposta);
                            }
                            _db.GruposPerguntas.Remove(grupo);
                        }
                        _db.Relatorios.Remove(relatorio);
                    }
                    negociacao = base.Delete((int)key[0]);
                    transaction.Commit();
                } catch (Exception ex) {
                    transaction.Rollback();
                    throw ex;
                }
            }
            return(negociacao);
        }
コード例 #6
0
 public override PlanoAcao Delete(params object[] key)
 {
     _arquivosService.DeleteFiles(DependencyFileType.PlanoAcao, (int)key[0]);
     return(base.Delete(key));
 }
コード例 #7
0
 public override Litigio Delete(params object[] key)
 {
     _arquivosService.DeleteFiles(DependencyFileType.Litigio, (int)key[0]);
     _itensLitigiosService.Delete(i => i.Litigio.Id == (int)key[0]);
     return(base.Delete(key));
 }