public ActionResult Editar(int id, int empreendimento, int tipo, bool isCadastrarCaracterizacao = true, bool mostrarModalDependencias = true)
        {
            if (!_validar.Dependencias(empreendimento, tipo))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, Msg = Validacao.QueryParam() }));
            }

            ProjetoGeograficoVM vm = new ProjetoGeograficoVM();

            vm.isCadastrarCaracterizacao = isCadastrarCaracterizacao;
            vm.IsCredenciado             = false;
            vm.UrlVoltar = Url.Action("../Caracterizacao/Index", new { id = empreendimento });

            vm.Projeto = _bus.ObterProjeto(id);

            Dominialidade dominialidade = null;

            if (vm.IsFinalizado)
            {
                dominialidade = new DominialidadeBus().ObterDadosGeo(empreendimento);
            }
            else
            {
                dominialidade = new DominialidadeBus().ObterDadosGeoTMP(empreendimento);
            }
            vm.PossuiAPPNaoCaracterizada = dominialidade.AreaAPPNaoCaracterizada.MaiorToleranciaM2();
            vm.PossuiARLNaoCaracterizada = dominialidade.ARLNaoCaracterizada.MaiorToleranciaM2();

            //Carregar os dados do projeto geográfico
            return(Carregar(vm, mostrarModalDependencias));
        }
        public ActionResult Criar(int empreendimento, int tipo, bool isCadastrarCaracterizacao = true)
        {
            if (empreendimento <= 0 || empreendimento <= 0)
            {
                return(RedirectToAction("Index", "../Empreendimento"));
            }

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

            if (tipo == (int)eCaracterizacao.RegularizacaoFundiaria && (!_validarReg.ValidarProjetoGeo(empreendimento) ||
                                                                        !permissaoValidar.ValidarAny(new[] { ePermissao.RegularizacaoFundiariaCriar })))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, Msg = Validacao.QueryParam() }));
            }

            ProjetoGeograficoVM vm = new ProjetoGeograficoVM();

            vm.isCadastrarCaracterizacao = isCadastrarCaracterizacao;
            vm.Projeto.EmpreendimentoId  = empreendimento;
            vm.Projeto.CaracterizacaoId  = tipo;
            vm.UrlVoltar = Url.Action("../Caracterizacao/Index", new { id = empreendimento });

            //Carregar os dados do projeto geográfico
            return(Carregar(vm));
        }
        public ActionResult Visualizar(int id, int empreendimento, int projetoDigitalId, int tipo, bool isCadastrarCaracterizacao = true, bool mostrarModalDependencias = true, bool retornarVisualizar = true)
        {
            ProjetoGeograficoVM vm = new ProjetoGeograficoVM();

            vm.isCadastrarCaracterizacao = isCadastrarCaracterizacao;

            ProjetoDigitalCredenciadoBus projetoDigitalBus = new ProjetoDigitalCredenciadoBus();
            List <Dependencia>           dependenciasPD    = projetoDigitalBus.ObterDependencias(projetoDigitalId);

            Dependencia dependencia = dependenciasPD.SingleOrDefault(x => x.DependenciaCaracterizacao == tipo && x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico) ?? new Dependencia();

            vm.Projeto = _bus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid);

            vm.IsVisualizar                   = true;
            vm.Desenhador.IsVisualizar        = true;
            vm.Sobreposicoes.MostrarVerificar = false;
            vm.BaseReferencia.IsVisualizar    = true;
            vm.Importador.IsVisualizar        = true;
            vm.IsProcessado                   = _bus.IsProcessado(vm.Projeto.Id, (eCaracterizacao)tipo);

            Boolean podeCriarEditar = new PermissaoValidar().ValidarAny(new[] { ePermissao.ProjetoGeograficoCriar, ePermissao.ProjetoGeograficoEditar }, false);

            if (!String.IsNullOrWhiteSpace(vm.TextoMerge) && !podeCriarEditar)
            {
                Validacao.Add(Mensagem.ProjetoGeografico.NaoPodeVisualizarComDependenciasAlteradas(vm.Projeto.CaracterizacaoTexto));
                return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }));
            }

            Dominialidade dominialidade = null;

            if (vm.IsFinalizado)
            {
                dominialidade = new DominialidadeBus().ObterDadosGeo(empreendimento);
            }
            else
            {
                dominialidade = new DominialidadeBus().ObterDadosGeoTMP(empreendimento);
            }

            vm.PossuiAPPNaoCaracterizada = dominialidade.AreaAPPNaoCaracterizada.MaiorToleranciaM2();
            vm.PossuiARLNaoCaracterizada = dominialidade.ARLNaoCaracterizada.MaiorToleranciaM2();

            vm.MostrarAvancar     = !dependenciasPD.Exists(x => x.DependenciaCaracterizacao == tipo);
            vm.RetornarVisualizar = retornarVisualizar;

            //Carregar os dados do projeto geográfico
            return(Carregar(vm, projetoDigitalId, mostrarModalDependencias, isVisualizar: true));
        }
        public ActionResult Visualizar(int id, int empreendimento, int tipo, bool isCadastrarCaracterizacao = true, bool mostrarModalDependencias = true)
        {
            if (tipo == (int)eCaracterizacao.RegularizacaoFundiaria && !permissaoValidar.ValidarAny(new[] { ePermissao.RegularizacaoFundiariaVisualizar }))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, Msg = Validacao.QueryParam() }));
            }

            ProjetoGeograficoVM vm = new ProjetoGeograficoVM();

            vm.isCadastrarCaracterizacao = isCadastrarCaracterizacao;
            vm.Projeto = _bus.ObterProjeto(id);

            vm.IsVisualizar                  = true;
            vm.Desenhador.IsVisualizar       = true;
            vm.Sobreposicoes.MostarVerificar = false;
            vm.BaseReferencia.IsVisualizar   = true;
            vm.EnviarProjeto.IsVisualizar    = true;
            vm.IsCredenciado                 = false;
            vm.UrlVoltar = Url.Action("../Caracterizacao/Index", new { id = empreendimento });

            Boolean podeCriarEditar = new PermissaoValidar().ValidarAny(new[] { ePermissao.ProjetoGeograficoCriar, ePermissao.ProjetoGeograficoEditar }, false);

            if (!String.IsNullOrWhiteSpace(vm.TextoMerge) && !podeCriarEditar)
            {
                Validacao.Add(Mensagem.ProjetoGeografico.NaoPodeVisualizarComDependenciasAlteradas(vm.Projeto.CaracterizacaoTexto));
                return(RedirectToAction("", "Caracterizacao", new { id = vm.Projeto.EmpreendimentoId, Msg = Validacao.QueryParam() }));
            }

            Dominialidade dominialidade = null;

            if (vm.IsFinalizado)
            {
                dominialidade = new DominialidadeBus().ObterDadosGeo(empreendimento);
            }
            else
            {
                dominialidade = new DominialidadeBus().ObterDadosGeoTMP(empreendimento);
            }
            vm.PossuiAPPNaoCaracterizada = dominialidade.AreaAPPNaoCaracterizada.MaiorToleranciaM2();
            vm.PossuiARLNaoCaracterizada = dominialidade.ARLNaoCaracterizada.MaiorToleranciaM2();

            //Carregar os dados do projeto geográfico
            return(Carregar(vm, mostrarModalDependencias, isVisualizar: true));
        }
        public ActionResult Criar(int empreendimento, int tipo, bool isCadastrarCaracterizacao = true, int projetoDigitalId = 0)
        {
            if (empreendimento <= 0)
            {
                return(RedirectToAction("Operar", "ProjetoDigital", new { area = "", Id = projetoDigitalId }));
            }

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

            ProjetoGeograficoVM vm = new ProjetoGeograficoVM();

            vm.isCadastrarCaracterizacao = isCadastrarCaracterizacao;
            vm.Projeto.EmpreendimentoId  = empreendimento;
            vm.Projeto.CaracterizacaoId  = tipo;

            //Carregar os dados do projeto geográfico
            return(Carregar(vm, projetoDigitalId));
        }
        public ActionResult Editar(int id, int empreendimento, int projetoDigitalId, int tipo, bool isCadastrarCaracterizacao = true, bool mostrarModalDependencias = true)
        {
            if (!_validar.Dependencias(empreendimento, projetoDigitalId, tipo))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }));
            }

            ProjetoGeograficoVM vm = new ProjetoGeograficoVM();

            vm.Projeto = _bus.ObterProjeto(id) ?? new ProjetoGeografico();
            vm.isCadastrarCaracterizacao = isCadastrarCaracterizacao;
            vm.Projeto.EmpreendimentoId  = empreendimento;
            vm.Projeto.CaracterizacaoId  = tipo;
            vm.IsProcessado = _bus.IsProcessado(vm.Projeto.Id, (eCaracterizacao)tipo);

            Dominialidade dominialidade = null;

            if (vm.IsFinalizado)
            {
                dominialidade = new DominialidadeBus().ObterDadosGeo(empreendimento);
            }
            else
            {
                dominialidade = new DominialidadeBus().ObterDadosGeoTMP(empreendimento);
            }

            vm.PossuiAPPNaoCaracterizada = dominialidade.AreaAPPNaoCaracterizada.MaiorToleranciaM2();
            vm.PossuiARLNaoCaracterizada = dominialidade.ARLNaoCaracterizada.MaiorToleranciaM2();

            ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus();

            vm.MostrarAvancar = !projetoDigitalCredenciadoBus.ObterDependencias(projetoDigitalId).Exists(x => x.DependenciaCaracterizacao == tipo);

            //Carregar os dados do projeto geográfico
            return(Carregar(vm, projetoDigitalId, mostrarModalDependencias));
        }
        public ActionResult Carregar(ProjetoGeograficoVM vm, bool mostrarModalDependencias = true, bool isVisualizar = false)
        {
            Empreendimento emp = _busEmpreendimento.Obter(vm.Projeto.EmpreendimentoId);

            if (emp.Coordenada.EastingUtm.GetValueOrDefault() <= 0 || emp.Coordenada.NorthingUtm.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.ProjetoGeografico.CoordenadaObrigatoria);
                return(RedirectToAction("", "Caracterizacao", new { id = vm.Projeto.EmpreendimentoId, Msg = Validacao.QueryParam() }));
            }

            if (!isVisualizar && !_caracterizacaoValidar.Dependencias(vm.Projeto.EmpreendimentoId, vm.Projeto.CaracterizacaoId, validarProjetoGeoProprio: false))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = vm.Projeto.EmpreendimentoId, Msg = Validacao.QueryParam() }));
            }

            eCaracterizacao tipo = (eCaracterizacao)vm.Projeto.CaracterizacaoId;

            vm.CaracterizacaoTipo     = vm.Projeto.CaracterizacaoId;
            vm.ArquivoEnviadoTipo     = (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado;
            vm.ArquivoEnviadoFilaTipo = (tipo == eCaracterizacao.Dominialidade) ? (int)eFilaTipoGeo.Dominialidade : (int)eFilaTipoGeo.Atividade;

            vm.NiveisPrecisao    = ViewModelHelper.CriarSelectList(_bus.ObterNiveisPrecisao());
            vm.SistemaCoordenada = ViewModelHelper.CriarSelectList(_bus.ObterSistemaCoordenada());

            vm.Projeto.EmpreendimentoEasting  = emp.Coordenada.EastingUtm.Value;
            vm.Projeto.EmpreendimentoNorthing = emp.Coordenada.NorthingUtm.Value;

            vm.Projeto.CaracterizacaoTexto = (_listaBus.Caracterizacoes.SingleOrDefault(x => x.Id == vm.Projeto.CaracterizacaoId) ?? new CaracterizacaoLst()).Texto;
            vm.Projeto.SistemaCoordenada   = ConcatenarSistemaCoordenada(emp);

            vm.Dependentes = _caracterizacaoBus.Dependentes(vm.Projeto.EmpreendimentoId, tipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);
            vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto;

            vm.UrlBaixarOrtofoto  = _config.Obter <string>(ConfiguracaoSistema.KeyUrlGeoBasesWebServices) + "/Arquivo/DownloadArquivoOrtoFoto";
            vm.UrlValidarOrtofoto = _config.Obter <string>(ConfiguracaoSistema.KeyUrlGeoBasesWebServices) + "/Arquivo/ValidarChaveArquivoOrtoFoto";

            vm.UrlsArquivo = ViewModelHelper.Json(ObterUrlsArquivo());

            #region Verificar o Redirecionamento

            vm.UrlAvancar = CaracterizacaoVM.GerarUrl(vm.Projeto.EmpreendimentoId, vm.isCadastrarCaracterizacao, (eCaracterizacao)tipo);

            List <DependenciaLst> dependencias = _caracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            if (dependencias.Exists(x => x.DependenteTipo == (int)tipo && x.TipoDetentorId == (int)eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade))
            {
                String           url = "Visualizar";
                PermissaoValidar permissaoValidar = new PermissaoValidar();

                if (permissaoValidar.ValidarAny(new[] { ePermissao.DescricaoLicenciamentoAtividadeCriar, ePermissao.DescricaoLicenciamentoAtividadeEditar }, false))
                {
                    url = "Criar";
                }

                vm.UrlAvancar = Url.Action(url, "DescricaoLicenciamentoAtividade", new { empreendimento = vm.Projeto.EmpreendimentoId, tipo = (int)tipo, isCadastrarCaracterizacao = vm.isCadastrarCaracterizacao });
            }

            #endregion

            if (vm.Projeto.Dependencias == null || vm.Projeto.Dependencias.Count == 0)
            {
                vm.Projeto.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(vm.Projeto.EmpreendimentoId, tipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);
            }

            if (vm.Projeto.Id > 0 && mostrarModalDependencias)
            {
                vm.TextoMerge = _caracterizacaoValidar.DependenciasAlteradas(
                    vm.Projeto.EmpreendimentoId,
                    vm.Projeto.CaracterizacaoId,
                    eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                    vm.Projeto.Dependencias, isVisualizar);
            }

            vm.Projeto.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(vm.Projeto.EmpreendimentoId, tipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);

            //Busca as dependencias desse projeto geográfico
            _bus.ObterDependencias(vm.Projeto, true);

            if (vm.Projeto.Id > 0)
            {
                vm.CarregarVMs();
            }

            return(View("ProjetoGeografico", vm));
        }
        public ActionResult VisualizarProjetoGeoCredenciado(int projetoDigitalId, int dependenciaTipo, int protocoloId, int requerimentoId)
        {
            ProjetoGeograficoVM vm = new ProjetoGeograficoVM()
            {
                ProtocoloId = protocoloId, RequerimentoId = requerimentoId, IsCredenciado = true
            };

            Cred.ModuloProjetoGeografico.Bussiness.ProjetoGeograficoBus projetoGeoCredBus     = new Cred.ModuloProjetoGeografico.Bussiness.ProjetoGeograficoBus();
            Cred.ModuloDominialidade.Business.DominialidadeBus          dominialidadeCredBus  = new Cred.ModuloDominialidade.Business.DominialidadeBus();
            Cred.ModuloCaracterizacao.Bussiness.CaracterizacaoBus       caracterizacaoCredBus = new Cred.ModuloCaracterizacao.Bussiness.CaracterizacaoBus();
            ProjetoDigitalCredenciadoBus busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();


            List <Dependencia> lstDependencias = busProjetoDigitalCredenciado.ObterDependencias(projetoDigitalId);
            Dependencia        dependencia     = lstDependencias.SingleOrDefault(x => x.DependenciaCaracterizacao == dependenciaTipo && x.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico) ?? new Dependencia();

            vm.Projeto                       = projetoGeoCredBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid);
            vm.IsVisualizar                  = true;
            vm.IsVisualizarCredenciado       = true;
            vm.Desenhador.Mostrar            = false;
            vm.Sobreposicoes.MostarVerificar = false;
            vm.BaseReferencia.IsVisualizar   = true;
            vm.EnviarProjeto.IsVisualizar    = true;
            vm.IsProcessado                  = projetoGeoCredBus.IsProcessado(vm.Projeto.Id, (eCaracterizacao)dependenciaTipo);

            Dominialidade dominialidade = dominialidadeCredBus.ObterDadosGeo(vm.Projeto.EmpreendimentoId);

            vm.PossuiAPPNaoCaracterizada = dominialidade.AreaAPPNaoCaracterizada.MaiorToleranciaM2();
            vm.PossuiARLNaoCaracterizada = dominialidade.ARLNaoCaracterizada.MaiorToleranciaM2();

            //Carregar os dados do projeto geográfico
            eCaracterizacao tipo = (eCaracterizacao)vm.Projeto.CaracterizacaoId;

            vm.ArquivoEnviadoTipo     = (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado;
            vm.ArquivoEnviadoFilaTipo = (tipo == eCaracterizacao.Dominialidade) ? (int)eFilaTipoGeo.Dominialidade : (int)eFilaTipoGeo.Atividade;

            vm.NiveisPrecisao    = ViewModelHelper.CriarSelectList(_bus.ObterNiveisPrecisao());
            vm.SistemaCoordenada = ViewModelHelper.CriarSelectList(_bus.ObterSistemaCoordenada());

            Empreendimento emp = new EmpreendimentoCredenciadoBus().Obter(vm.Projeto.EmpreendimentoId);

            vm.Projeto.EmpreendimentoEasting  = emp.Coordenada.EastingUtm.Value;
            vm.Projeto.EmpreendimentoNorthing = emp.Coordenada.NorthingUtm.Value;

            vm.Projeto.CaracterizacaoTexto = (_listaBus.Caracterizacoes.SingleOrDefault(x => x.Id == vm.Projeto.CaracterizacaoId) ?? new CaracterizacaoLst()).Texto;
            vm.Projeto.SistemaCoordenada   = ConcatenarSistemaCoordenada(emp);

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

            vm.UrlBaixarOrtofoto  = _config.Obter <string>(ConfiguracaoSistema.KeyUrlGeoBasesWebServices) + "/Arquivo/DownloadArquivoOrtoFoto";
            vm.UrlValidarOrtofoto = _config.Obter <string>(ConfiguracaoSistema.KeyUrlGeoBasesWebServices) + "/Arquivo/ValidarChaveArquivoOrtoFoto";
            vm.UrlsArquivo        = ViewModelHelper.Json(ObterUrlsArquivo());
            vm.UrlVoltar          = Url.Action("Analisar", "AnaliseItens", new { protocoloId = protocoloId, requerimentoId = requerimentoId });
            #region Verificar o Redirecionamento

            vm.UrlAvancar = Url.Action("VisualizarCredenciado", "Dominialidade", new { projetoDigitalId = projetoDigitalId, protocoloId = protocoloId });

            List <DependenciaLst> dependencias = _caracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            #endregion

            if (vm.Projeto.Dependencias == null || vm.Projeto.Dependencias.Count == 0)
            {
                vm.Projeto.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(vm.Projeto.EmpreendimentoId, tipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);
            }

            if (vm.Projeto.Id > 0)
            {
                vm.TextoMerge = _caracterizacaoValidar.DependenciasAlteradas(
                    vm.Projeto.EmpreendimentoId,
                    vm.Projeto.CaracterizacaoId,
                    eCaracterizacaoDependenciaTipo.ProjetoGeografico,
                    vm.Projeto.Dependencias, true);
            }

            vm.Projeto.Dependencias = caracterizacaoCredBus.ObterDependenciasAtual(vm.Projeto.EmpreendimentoId, tipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico);

            //Busca as dependencias desse projeto geográfico
            projetoGeoCredBus.ObterDependencias(vm.Projeto, true);

            if (vm.Projeto.Id > 0)
            {
                vm.CarregarVMs();
            }

            return(View("ProjetoGeografico", vm));
        }