Esempio n. 1
0
        public Requerimento Importar(Requerimento requerimento, BancoDeDados bancoInterno, BancoDeDados bancoCredenciado)
        {
            int id = requerimento.Empreendimento.Id;

            EmpreendimentoCredenciadoBus bus = new EmpreendimentoCredenciadoBus();

            Empreendimento empCredenciado = bus.Obter(requerimento.Empreendimento.Id, bancoCredenciado);

            //Busca o empreendimento no banco do credenciado
            Empreendimento empInterno = null;

            empCredenciado.SelecaoTipo = requerimento.Empreendimento.SelecaoTipo;

            #region Empreendimento Cadastrado no Interno

            empCredenciado.Id = 0;

            if (empCredenciado.InternoId.GetValueOrDefault() > 0)
            {
                empInterno = Obter(empCredenciado.InternoId.GetValueOrDefault(), bancoInterno);

                if (empInterno != null && empInterno.Id > 0)
                {
                    empCredenciado.Id            = empInterno.Id;
                    empCredenciado.Coordenada.Id = empInterno.Coordenada.Id;
                }
            }

            if (!string.IsNullOrEmpty(empCredenciado.CNPJ) && empCredenciado.Id <= 0)
            {
                empCredenciado.Id = _da.ObterId(empCredenciado.CNPJ, bancoInterno);
            }

            #endregion Empreendimento Cadastrado no Interno

            #region Responsáveis

            empCredenciado.Responsaveis.ForEach(r =>
            {
                r.Id = requerimento.Pessoas.Where(x => x.Id == r.Id).SingleOrDefault().InternoId.GetValueOrDefault();
            });

            ConfigurarResponsaveis(empCredenciado, bancoInterno, empInterno);

            #endregion Responsáveis

            #region Apagar ID's

            empCredenciado.Responsaveis.ForEach(r => { r.IdRelacionamento = 0; });
            empCredenciado.Enderecos.ForEach(r => { r.Id = 0; });
            empCredenciado.MeiosContatos.ForEach(r => { r.Id = 0; });
            empCredenciado.Coordenada.Datum.Sigla = ((_da.ObterDatuns().FirstOrDefault(x => x.Id == empCredenciado.Coordenada.Datum.Id)) ?? new Datum()).Texto;

            #endregion Apagar ID's

            if (empCredenciado.Id == 0)
            {
                _da.Criar(empCredenciado, bancoInterno);
            }
            else
            {
                _da.Editar(empCredenciado, bancoInterno);
            }

            empCredenciado.InternoId    = empCredenciado.Id;
            requerimento.Empreendimento = empCredenciado;
            bus.SalvarInternoId(
                new Empreendimento()
            {
                Id         = id,
                InternoId  = empCredenciado.Id,
                InternoTid = empCredenciado.Tid,
                Codigo     = empCredenciado.Codigo
            }, bancoCredenciado);

            return(requerimento);
        }