public ActionResult Criar(int id)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            BeneficiamentoMadeira caracterizacao = new BeneficiamentoMadeira();

            caracterizacao.EmpreendimentoId = id;

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

            caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.BeneficiamentoMadeira, eCaracterizacaoDependenciaTipo.Caracterizacao);

            BeneficiamentoMadeiraVM vm = new BeneficiamentoMadeiraVM(caracterizacao);

            vm.BeneficiamentoMadeiraBeneficiamentosTemplateVM = new BeneficiamentoMadeiraBeneficiamentoVM(_listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida);

            foreach (BeneficiamentoMadeiraBeneficiamento beneficiamento in caracterizacao.Beneficiamentos)
            {
                beneficiamento.Identificador = Guid.NewGuid().ToString();
                BeneficiamentoMadeiraBeneficiamentoVM viewModelAux = new BeneficiamentoMadeiraBeneficiamentoVM(beneficiamento, _listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, (eTipoGeometria)beneficiamento.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida);
                vm.BeneficiamentoMadeiraBeneficiamentosVM.Add(viewModelAux);
            }


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

            return(View(vm));
        }
        public ActionResult Visualizar(int id)
        {
            if (!_validar.Acessar(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

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

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

            BeneficiamentoMadeiraVM vm = new BeneficiamentoMadeiraVM(caracterizacao, true);

            foreach (BeneficiamentoMadeiraBeneficiamento beneficiamento in caracterizacao.Beneficiamentos)
            {
                beneficiamento.Identificador = Guid.NewGuid().ToString();
                BeneficiamentoMadeiraBeneficiamentoVM viewModelAux = new BeneficiamentoMadeiraBeneficiamentoVM(beneficiamento, _listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, (eTipoGeometria)beneficiamento.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida, true);
                vm.BeneficiamentoMadeiraBeneficiamentosVM.Add(viewModelAux);
            }

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

            return(View(vm));
        }
        public ActionResult GeoMergiar(BeneficiamentoMadeira caracterizacao)
        {
            BeneficiamentoMadeira   caracterizacaoMerge = _bus.MergiarGeo(caracterizacao);
            BeneficiamentoMadeiraVM vm = new BeneficiamentoMadeiraVM(caracterizacaoMerge);

            foreach (BeneficiamentoMadeiraBeneficiamento beneficiamento in caracterizacaoMerge.Beneficiamentos)
            {
                beneficiamento.Identificador = Guid.NewGuid().ToString();
                BeneficiamentoMadeiraBeneficiamentoVM viewModelAux = new BeneficiamentoMadeiraBeneficiamentoVM(beneficiamento, _listaBus.AtividadesSolicitada, _listaBus.BeneficiamentoMadeiraMateriaPrimaConsumida, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.BeneficiamentoMadeira, (eTipoGeometria)beneficiamento.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, _listaBus.CaracterizacaoUnidadeMedida);
                vm.BeneficiamentoMadeiraBeneficiamentosVM.Add(viewModelAux);
            }

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "BeneficiamentoMadeira", vm),
                @Dependencias = ViewModelHelper.Json(vm.Caracterizacao.Dependencias)
            }, JsonRequestBehavior.AllowGet));
        }