public ActionResult Editar(int id, int projetoDigitalId)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            if (!_caracterizacaoValidar.Dependencias(id, projetoDigitalId, (int)eCaracterizacao.Dominialidade))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }));
            }

            if (!_validar.ProjetoFinalizado(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }));
            }

            Dominialidade caracterizacao = _bus.ObterPorEmpreendimento(id);
            string        textoMerge     = _caracterizacaoValidar.DependenciasAlteradas(
                caracterizacao.EmpreendimentoId,
                (int)eCaracterizacao.Dominialidade,
                eCaracterizacaoDependenciaTipo.Caracterizacao,
                caracterizacao.Dependencias);

            if (!string.IsNullOrEmpty(textoMerge))
            {
                caracterizacao = _bus.MergiarGeo(caracterizacao);

                if (!_validar.Dominios(caracterizacao.Dominios))
                {
                    return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
                }
            }

            foreach (var dominio in caracterizacao.Dominios)
            {
                foreach (var reserva in dominio.ReservasLegais)
                {
                    if (!LocalizacoesReserva(reserva, (int)dominio.Tipo).Any(x => x.Id == reserva.LocalizacaoId.ToString()))
                    {
                        reserva.LocalizacaoId = 0;
                    }
                }
            }

            caracterizacao.EmpreendimentoInternoId = _busEmpreendimento.ObterEmpreendimento(id, simplificado: true).InternoId.GetValueOrDefault();
            DominialidadeVM vm = new DominialidadeVM(caracterizacao, ListaCredenciadoBus.BooleanLista);

            vm.TextoMerge = textoMerge;
            vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto;
            vm.ProjetoDigitalId = projetoDigitalId;
            return(View(vm));
        }
Ejemplo n.º 2
0
        public ActionResult Editar(int id)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            if (!_caracterizacaoValidar.Dependencias(id, (int)eCaracterizacao.Dominialidade))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            if (!_validar.ProjetoFinalizado(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            Dominialidade caracterizacao = _bus.ObterPorEmpreendimento(id);
            string        textoMerge     = _caracterizacaoValidar.DependenciasAlteradas(
                caracterizacao.EmpreendimentoId,
                (int)eCaracterizacao.Dominialidade,
                eCaracterizacaoDependenciaTipo.Caracterizacao,
                caracterizacao.Dependencias);

            if (!string.IsNullOrEmpty(textoMerge))
            {
                caracterizacao = _bus.MergiarGeo(caracterizacao);

                if (!_validar.Dominios(caracterizacao.Dominios))
                {
                    return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
                }
            }

            foreach (var dominio in caracterizacao.Dominios)
            {
                foreach (var reserva in dominio.ReservasLegais)
                {
                    if (!LocalizacoesReserva(reserva, (int)dominio.Tipo).Any(x => x.Id == reserva.LocalizacaoId.ToString()))
                    {
                        reserva.LocalizacaoId = 0;
                    }
                }
            }

            DominialidadeVM vm = new DominialidadeVM(caracterizacao, _listaBus.BooleanLista);

            vm.TextoMerge = textoMerge;
            vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto;

            return(View(vm));
        }