コード例 #1
0
        public void AssociarDependencias(ProjetoDigital projetoDigital, BancoDeDados banco = null)
        {
            try
            {
                #region Configurar

                List <Caracterizacao> lista = new List <Caracterizacao>();
                lista.Add(new Caracterizacao()
                {
                    Tipo = (eCaracterizacao)projetoDigital.Dependencias.First().DependenciaCaracterizacao
                });

                CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus();
                lista = caracterizacaoBus.ObterCaracterizacoesAtuais(projetoDigital.EmpreendimentoId.GetValueOrDefault(), lista);

                Caracterizacao aux = lista.First();
                projetoDigital.Dependencias.Clear();

                projetoDigital.Dependencias.Add(new Dependencia()
                {
                    DependenciaTipo           = (int)eCaracterizacaoDependenciaTipo.Caracterizacao,
                    DependenciaCaracterizacao = (int)aux.Tipo,
                    DependenciaId             = aux.Id,
                    DependenciaTid            = aux.Tid
                });

                if (aux.ProjetoId > 0)
                {
                    projetoDigital.Dependencias.Add(new Dependencia()
                    {
                        DependenciaTipo           = (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                        DependenciaCaracterizacao = (int)aux.Tipo,
                        DependenciaId             = aux.ProjetoId,
                        DependenciaTid            = aux.ProjetoTid
                    });
                }

                #endregion

                if (_validar.AssociarDependencias(projetoDigital))
                {
                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        _da.AssociarDependencias(projetoDigital, bancoDeDados);

                        AlterarEtapa(projetoDigital.Id, eProjetoDigitalEtapa.Caracterizacao, bancoDeDados);

                        Validacao.Add(Mensagem.ProjetoDigital.AssociadaProjetoDigital);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
コード例 #2
0
        public bool FinalizarCaracterizacoes(ProjetoDigital projetoDigital)
        {
            #region Configurar

            List <CaracterizacaoLst> caracterizacoes = _busCaracterizacao.ObterCaracterizacoesPorProjetoDigital(projetoDigital.Id);
            if (caracterizacoes.Count <= 0)
            {
                return(true);
            }

            List <Caracterizacao> lista = new List <Caracterizacao>();
            caracterizacoes.ForEach(r =>
            {
                lista.Add(new Caracterizacao()
                {
                    Tipo = (eCaracterizacao)r.Id
                });
            });

            lista = _busCaracterizacao.ObterCaracterizacoesAtuais(projetoDigital.EmpreendimentoId.GetValueOrDefault(), lista);

            lista.ForEach(r =>
            {
                if (r.Tipo == eCaracterizacao.UnidadeProducao)
                {
                    ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(eCaracterizacao.UnidadeProducao);
                    if (!caracterizacaoBus.PodeEnviar(r.Id))
                    {
                        return;
                    }
                }

                projetoDigital.Dependencias.Add(new Dependencia()
                {
                    DependenciaTipo           = (int)eCaracterizacaoDependenciaTipo.Caracterizacao,
                    DependenciaCaracterizacao = (int)r.Tipo,
                    DependenciaId             = r.Id,
                    DependenciaTid            = r.Tid
                });

                if (r.ProjetoId > 0)
                {
                    projetoDigital.Dependencias.Add(new Dependencia()
                    {
                        DependenciaTipo           = (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                        DependenciaCaracterizacao = (int)r.Tipo,
                        DependenciaId             = r.ProjetoId,
                        DependenciaTid            = r.ProjetoTid
                    });
                }
            });

            #endregion

            if (!Validacao.EhValido)
            {
                return(false);
            }

            AssociarDependencias(projetoDigital);

            List <CaracterizacaoLst> caracterizacoesObrigatorias = _busCaracterizacao.ObterCaracterizacoesPorProjetoDigital(projetoDigital.Id)
                                                                   .Where(x => x.Permissao == ePermissaoTipo.Obrigatorio).ToList();

            List <Dependencia> dependenciasBanco = _da.ObterDependencias(projetoDigital.Id);
            foreach (var item in caracterizacoesObrigatorias)
            {
                if (!dependenciasBanco.Exists(x => x.DependenciaCaracterizacao == item.Id))
                {
                    Validacao.Add(Mensagem.ProjetoDigital.CaracterizacaoObrigatoria(item.Texto));
                }
            }

            return(Validacao.EhValido);
        }