public ActionResult Salvar(ProjetoGeografico projeto, string url) { if (!_caracterizacaoValidar.Basicas(projeto.EmpreendimentoId)) { return(Json(new { @EhValido = Validacao.EhValido, Msg = Validacao.Erros, urlRedirect = Url.Action("Index", "../Empreendimento", Validacao.QueryParamSerializer()) })); } var urlCriar = CaracterizacaoVM.GerarUrl(projeto.EmpreendimentoId, true, eCaracterizacao.ExploracaoFlorestal); var urlEditar = CaracterizacaoVM.GerarUrl(projeto.EmpreendimentoId, false, eCaracterizacao.ExploracaoFlorestal); if (url.Contains(urlCriar) || url.Contains(urlEditar)) { if (!_validar.Finalizar(projeto)) { return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros, Url = url })); } if (_exploracaoFlorestalBus.ExisteExploracaoGeoNaoCadastrada(projeto.Id)) { url = urlCriar; } } _bus.Salvar(projeto); if (projeto.CaracterizacaoId == (int)eCaracterizacao.ExploracaoFlorestal) { _caracterizacaoBus.AtualizarDependentes(projeto.Id, eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao, projeto.Tid); } return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros, Url = url })); }
public ActionResult Criar(int empreendimento, int tipo, bool isCadastrarCaracterizacao) { if (!_caracterizacaoValidar.Dependencias(empreendimento, tipo)) { return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, Msg = Validacao.QueryParam() })); } DescricaoLicenciamentoAtividadeVM vm = new DescricaoLicenciamentoAtividadeVM(); DescricaoLicenciamentoAtividade dscLicAtividade = _bus.ObterPorEmpreendimento(empreendimento, (eCaracterizacao)tipo); dscLicAtividade = _bus.ObterDadosGeo(empreendimento, (eCaracterizacao)tipo, dscLicAtividade); if (dscLicAtividade.Id == 0) { dscLicAtividade.Tipo = tipo; } vm.CaracterizacaoTipoTexto = _caracterizacaoBus.ObterCaracterizacoesEmpreendimento(empreendimento).SingleOrDefault(x => (int)x.Tipo == tipo).Nome; dscLicAtividade.EmpreendimentoId = empreendimento; vm.DscLicAtividade = dscLicAtividade; vm.IsCadastrarCaracterizacao = isCadastrarCaracterizacao; vm.ResponsaveisEmpreendimento = ViewModelHelper.CriarSelectList(_bus.ObterResponsaveis(empreendimento)); vm.FontesAbastecimentoAguaTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvFontesAbastecimentoAguaTipo); vm.PontosLancamentoEfluenteTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvPontosLancamentoEfluenteTipo); vm.OutorgaAguaTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvOutorgaAguaTipo); vm.FontesGeracaoTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvFontesGeracaoTipo); vm.UnidadeTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvUnidadeTipo); vm.CombustivelTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvCombustivelTipo); vm.VegetacaoAreaUtil = _listaBus.DscLicAtvVegetacaoAreaUtil; vm.Acondicionamento = _listaBus.DscLicAtvAcondicionamento; vm.Estocagem = _listaBus.DscLicAtvEstocagem; vm.Tratamento = _listaBus.DscLicAtvTratamento; vm.DestinoFinal = _listaBus.DscLicAtvDestinoFinal; if (vm.DscLicAtividade.Id > 0) { vm.DscLicAtividade.Dependencias = _caracterizacaoBus.ObterDependencias(vm.DscLicAtividade.Id, vm.DscLicAtividade.GetTipo, eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade); vm.TextoMerge = _caracterizacaoValidar.DependenciasAlteradas( vm.DscLicAtividade.EmpreendimentoId, vm.DscLicAtividade.Tipo, eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade, vm.DscLicAtividade.Dependencias); vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; } if (vm.ResponsaveisEmpreendimento != null && vm.ResponsaveisEmpreendimento.Count == 2) { vm.DscLicAtividade.RespAtividade = Int32.Parse(vm.ResponsaveisEmpreendimento.First(x => int.Parse(x.Value) > 0).Value); } vm.UrlAvancar = CaracterizacaoVM.GerarUrl(empreendimento, isCadastrarCaracterizacao, (eCaracterizacao)tipo); return(View("Criar", vm)); }
public ActionResult Visualizar(int empreendimento, int tipo, bool isCadastrarCaracterizacao) { if (!_caracterizacaoValidar.Dependencias(empreendimento, tipo)) { return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, Msg = Validacao.QueryParam() })); } DescricaoLicenciamentoAtividadeVM vm = new DescricaoLicenciamentoAtividadeVM(); DescricaoLicenciamentoAtividade dscLicAtividade = _bus.ObterPorEmpreendimento(empreendimento, (eCaracterizacao)tipo); dscLicAtividade = _bus.ObterDadosGeo(empreendimento, (eCaracterizacao)tipo, dscLicAtividade); vm.CaracterizacaoTipoTexto = _caracterizacaoBus.ObterCaracterizacoesEmpreendimento(empreendimento).SingleOrDefault(x => (int)x.Tipo == tipo).Nome; dscLicAtividade.EmpreendimentoId = empreendimento; vm.DscLicAtividade = dscLicAtividade; vm.IsCadastrarCaracterizacao = isCadastrarCaracterizacao; vm.ResponsaveisEmpreendimento = ViewModelHelper.CriarSelectList(_bus.ObterResponsaveis(empreendimento)); vm.FontesAbastecimentoAguaTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvFontesAbastecimentoAguaTipo); vm.PontosLancamentoEfluenteTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvPontosLancamentoEfluenteTipo); vm.OutorgaAguaTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvOutorgaAguaTipo); vm.FontesGeracaoTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvFontesGeracaoTipo); vm.UnidadeTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvUnidadeTipo); vm.CombustivelTipo = ViewModelHelper.CriarSelectList(_listaBus.DscLicAtvCombustivelTipo); vm.VegetacaoAreaUtil = _listaBus.DscLicAtvVegetacaoAreaUtil; vm.Acondicionamento = _listaBus.DscLicAtvAcondicionamento; vm.Estocagem = _listaBus.DscLicAtvEstocagem; vm.Tratamento = _listaBus.DscLicAtvTratamento; vm.DestinoFinal = _listaBus.DscLicAtvDestinoFinal; if (vm.DscLicAtividade.Id > 0) { vm.DscLicAtividade.Dependencias = _caracterizacaoBus.ObterDependencias(vm.DscLicAtividade.Id, vm.DscLicAtividade.GetTipo, eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade); vm.TextoMerge = _caracterizacaoValidar.DependenciasAlteradas( vm.DscLicAtividade.EmpreendimentoId, vm.DscLicAtividade.Tipo, eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade, vm.DscLicAtividade.Dependencias, true); vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; } Boolean podeCriarEditar = new PermissaoValidar().ValidarAny(new[] { ePermissao.DescricaoLicenciamentoAtividadeCriar, ePermissao.DescricaoLicenciamentoAtividadeEditar }, false); if (!String.IsNullOrWhiteSpace(vm.TextoMerge) && !podeCriarEditar) { Validacao.Add(Mensagem.DescricaoLicenciamentoAtividadeMsg.NaoPodeVisualizarComDependenciasAlteradas(vm.CaracterizacaoTipoTexto)); return(RedirectToAction("", "Caracterizacao", new { id = empreendimento, Msg = Validacao.QueryParam() })); } vm.UrlAvancar = CaracterizacaoVM.GerarUrl(empreendimento, isCadastrarCaracterizacao, (eCaracterizacao)tipo); vm.IsVisualizar = true; return(View("Criar", vm)); }
public ActionResult Salvar(DescricaoLicenciamentoAtividade dscLicAtividade, bool isCadastrarCaracterizacao) { _bus.Salvar(dscLicAtividade); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @UrlRedirecionar = CaracterizacaoVM.GerarUrl(dscLicAtividade.EmpreendimentoId, isCadastrarCaracterizacao, dscLicAtividade.GetTipo), @AtividadeId = dscLicAtividade.Id }, JsonRequestBehavior.AllowGet)); }
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 Index(int id) { EmpreendimentoCaracterizacao empreendimento = _bus.ObterEmpreendimentoSimplificado(id); if (empreendimento.Id == 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoNaoEncontrado); return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } CaracterizacaoVM vm = new CaracterizacaoVM(empreendimento); List <CaracterizacaoLst> caracterizacoes = _bus.CaracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes); List <ProjetoGeografico> projetos = _bus.ObterProjetosEmpreendimento(id); if (!_bus.ValidarAcessarTela(caracterizacoes)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } List <Caracterizacao> cadastradas = _bus.ObterCaracterizacoesEmpreendimento(id) ?? new List <Caracterizacao>(); vm.CaracterizacoesNaoCadastradas = caracterizacoes .Where(x => !cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id)) .Select(z => new CaracterizacaoVME() { Tipo = (eCaracterizacao)z.Id, Nome = z.Texto }).ToList(); vm.CaracterizacoesCadastradas = caracterizacoes .Where(x => cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id)) .Select(z => new CaracterizacaoVME() { Tipo = (eCaracterizacao)z.Id, Nome = z.Texto }).ToList(); List <DependenciaLst> dependencias = _bus.CaracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias); vm.CaracterizacoesNaoCadastradas.ForEach(x => { x.PodeCadastrar = User.IsInRole(String.Format("{0}Criar", x.Tipo.ToString())); x.ProjetoGeografico = User.IsInRole("ProjetoGeograficoCriar"); x.DscLicAtividade = User.IsInRole("DescricaoLicenciamentoAtividadeCriar"); x.ProjetoGeoObrigatorio = dependencias.Exists(y => y.DependenteTipo == (int)x.Tipo && y.DependenciaTipo == (int)x.Tipo && y.TipoId == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico); x.DscLicAtividadeObrigatorio = dependencias.Exists(y => y.DependenteTipo == (int)x.Tipo && y.DependenciaTipo == (int)x.Tipo && y.TipoId == (int)eCaracterizacaoDependenciaTipo.DescricaoLicenciamentoAtividade); Caracterizacao cadastrada = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao(); x.ProjetoGeograficoId = cadastrada.ProjetoRascunhoId; x.DscLicAtividadeId = cadastrada.DscLicAtividadeId; if (x.ProjetoGeograficoId <= 0) { x.ProjetoGeograficoId = cadastrada.ProjetoId; } x.UrlCriar = Url.Action("Criar", x.Tipo.ToString()); }); vm.CaracterizacoesCadastradas.ForEach(x => { if (User.IsInRole("ProjetoGeograficoEditar") || User.IsInRole("ProjetoGeograficoVisualizar")) { x.ProjetoGeografico = true; } x.ProjetoGeograficoVisualizar = User.IsInRole(ePermissao.ProjetoGeograficoVisualizar.ToString()) && !User.IsInRole(ePermissao.ProjetoGeograficoCriar.ToString()) && !User.IsInRole(ePermissao.ProjetoGeograficoEditar.ToString()); if (User.IsInRole("DescricaoLicenciamentoAtividadeEditar") || User.IsInRole("DescricaoLicenciamentoAtividadeVisualizar")) { x.DscLicAtividade = true; } x.DscLicAtividadeVisualizar = User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeVisualizar.ToString()) && !User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeCriar.ToString()) && !User.IsInRole(ePermissao.DescricaoLicenciamentoAtividadeEditar.ToString()); x.PodeEditar = User.IsInRole(String.Format("{0}Editar", x.Tipo.ToString())); x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString())); x.PodeExcluir = User.IsInRole(String.Format("{0}Excluir", x.Tipo.ToString())); Caracterizacao cadastrada = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao(); x.ProjetoGeograficoId = cadastrada.ProjetoId; x.DscLicAtividadeId = cadastrada.DscLicAtividadeId; x.UrlEditar = Url.Action("Editar", x.Tipo.ToString()); x.UrlVisualizar = Url.Action("Visualizar", x.Tipo.ToString()); x.UrlExcluirConfirm = Url.Action("ExcluirConfirm", x.Tipo.ToString()); x.UrlExcluir = Url.Action("Excluir", x.Tipo.ToString()); }); #region CAR vm.CaracterizacoesCadastradas.Where(x => x.Tipo == eCaracterizacao.CadastroAmbientalRural).ToList().ForEach(x => { x.ProjetoGeografico = false; x.ProjetoGeograficoVisualizar = false; x.ProjetoGeograficoId = 0; x.DscLicAtividade = false; x.DscLicAtividadeVisualizar = false; x.DscLicAtividadeId = 0; }); #endregion return(View("Caracterizacao", vm)); }
public ActionResult Index(int id, int projetoDigitalId, bool visualizar = false) { ProjetoDigitalCredenciadoBus projetoDigitalCredenciadoBus = new ProjetoDigitalCredenciadoBus(); if (id == 0) { if (!visualizar) { ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio); } return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" }))); } EmpreendimentoCaracterizacao empreendimento = _bus.ObterEmpreendimentoSimplificado(id); CaracterizacaoVM vm = new CaracterizacaoVM(empreendimento); if (empreendimento.InternoID > 0) { Empreendimento empreendimentoInterno = new EmpreendimentoInternoBus().ObterSimplificado(empreendimento.InternoID); if (empreendimento.InternoTID != empreendimentoInterno.Tid) { vm.MensagensNotificacoes.Add(Mensagem.Caracterizacao.EmpreendimentoDesatualizado(empreendimentoInterno.Denominador).Texto); } } if (empreendimento.Id == 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoNaoEncontrado); return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" }))); } vm.ProjetoDigitalId = projetoDigitalId; vm.IsVisualizar = visualizar; List <CaracterizacaoLst> caracterizacoes = _bus.ObterCaracterizacoesPorProjetoDigital(projetoDigitalId); if (caracterizacoes.All(carac => carac.Permissao == ePermissaoTipo.NaoPermitido)) { Validacao.Add(Mensagem.Caracterizacao.UsuarioNaoPermitidoParaCaracterizacao); } caracterizacoes.RemoveAll(caract => caract.Permissao == ePermissaoTipo.NaoPermitido); #region Projeto Digital if (caracterizacoes == null || caracterizacoes.Count <= 0) { ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio); return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" }))); } ProjetoDigitalCredenciadoValidar projetoDigitalCredenciadoValidar = new ProjetoDigitalCredenciadoValidar(); if (!projetoDigitalCredenciadoValidar.PossuiCaracterizacaoAtividade(caracterizacoes, projetoDigitalId)) { if (!visualizar) { ProjetoDigital projetoDigital = projetoDigitalCredenciadoBus.AlterarEtapa(projetoDigitalId, eProjetoDigitalEtapa.Envio); } return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" }))); } else { vm.MostrarFinalizar = (projetoDigitalCredenciadoBus.Obter(projetoDigitalId).Etapa == (int)eProjetoDigitalEtapa.Caracterizacao) && !visualizar; } #endregion List <Caracterizacao> caracterizacoesAssociadas = _bus.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId); List <Caracterizacao> cadastradas = _bus.ObterCaracterizacoesEmpreendimento(id, projetoDigitalId) ?? new List <Caracterizacao>(); List <Caracterizacao> cadastradasInterno = _internoBus.ObterCaracterizacoesAtuais(empreendimento.InternoID, caracterizacoes); if (cadastradas != null && cadastradas.Count > 0) { List <int> desatualizadas = new List <int>(); string msgDesatualizadas = _validar.CaracterizacoesCadastradasDesatualizadas(empreendimento.Id, cadastradas, cadastradasInterno, out desatualizadas); if (!string.IsNullOrEmpty(msgDesatualizadas)) { vm.MensagensNotificacoes.Add(msgDesatualizadas); } vm.CaracterizacoesPossivelCopiar = _bus.ObterPossivelCopiar(cadastradas); vm.CaracterizacoesPossivelCopiar.AddRange(desatualizadas.Where(x => !vm.CaracterizacoesPossivelCopiar.Exists(y => y == x))); } vm.CaracterizacoesNaoCadastradas = caracterizacoes .Where(x => !cadastradas.Any(y => y.Id > 0 && (int)y.Tipo == x.Id)) .Select(z => new CaracterizacaoVME() { Tipo = (eCaracterizacao)z.Id, Nome = z.Texto }).ToList(); vm.CaracterizacoesCadastradas = caracterizacoes .Where(x => cadastradas.Where(y => !caracterizacoesAssociadas.Exists(z => z.Tipo == y.Tipo)).Any(y => y.Id > 0 && (int)y.Tipo == x.Id)) .Select(z => new CaracterizacaoVME() { Tipo = (eCaracterizacao)z.Id, Nome = z.Texto }).ToList(); vm.CaracterizacoesAssociadas = caracterizacoesAssociadas .Select(z => new CaracterizacaoVME() { Tipo = (eCaracterizacao)z.Tipo, Nome = z.Nome }).ToList(); List <DependenciaLst> dependencias = _bus.CaracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias); #region Não Cadastradas vm.CaracterizacoesNaoCadastradas.ForEach(x => { ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(x.Tipo); if (caracterizacaoBus != null) { x.PodeCopiar = cadastradasInterno.Exists(y => y.Tipo == x.Tipo) && caracterizacaoBus.PodeCopiar(empreendimento.InternoID); } x.PodeCadastrar = User.IsInRole(String.Format("{0}Criar", x.Tipo.ToString())); x.ProjetoGeografico = User.IsInRole("ProjetoGeograficoCriar"); x.ProjetoGeoObrigatorio = dependencias.Exists(y => y.DependenteTipo == (int)x.Tipo && y.DependenciaTipo == (int)x.Tipo && y.TipoId == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico); x.ProjetoGeograficoId = (cadastradas.FirstOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao()).ProjetoRascunhoId; if (x.ProjetoGeograficoId <= 0) { x.ProjetoGeograficoId = (cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo) ?? new Caracterizacao()).ProjetoId; } x.UrlCriar = Url.Action("Criar", x.Tipo.ToString()); }); #endregion #region Cadastradas vm.CaracterizacoesCadastradas.ForEach(x => { if (User.IsInRole("ProjetoGeograficoEditar") || User.IsInRole("ProjetoGeograficoVisualizar")) { x.ProjetoGeografico = true; } x.ProjetoGeograficoVisualizar = visualizar; x.PodeEditar = User.IsInRole(String.Format("{0}Editar", x.Tipo.ToString())); x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString())); x.PodeExcluir = (User.IsInRole(String.Format("{0}Excluir", x.Tipo.ToString())) && (x.Tipo == eCaracterizacao.UnidadeConsolidacao || x.Tipo == eCaracterizacao.UnidadeProducao)); x.PodeCopiar = cadastradasInterno.Exists(y => y.Tipo == x.Tipo); x.PodeAssociar = !caracterizacoesAssociadas.Exists(y => y.Tipo == x.Tipo); x.ProjetoGeograficoId = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo).ProjetoId; x.UrlEditar = Url.Action("Editar", x.Tipo.ToString()); x.UrlVisualizar = Url.Action("Visualizar", x.Tipo.ToString()); x.UrlExcluirConfirm = Url.Action("ExcluirConfirm", x.Tipo.ToString()); x.UrlExcluir = Url.Action("Excluir", x.Tipo.ToString()); }); #endregion #region Associadas vm.CaracterizacoesAssociadas.ForEach(x => { if (User.IsInRole("ProjetoGeograficoVisualizar")) { x.ProjetoGeografico = true; x.ProjetoGeograficoVisualizar = true; x.ProjetoGeograficoId = cadastradas.SingleOrDefault(y => y.Tipo == x.Tipo).ProjetoId; } x.PodeVisualizar = User.IsInRole(String.Format("{0}Visualizar", x.Tipo.ToString())); x.UrlVisualizar = Url.Action("Visualizar", x.Tipo.ToString()); }); #endregion return(View("Caracterizacao", vm)); }