private void AtualizarSolicitacaoDocumentos(FichaCadastralWebForLinkVM model, int tipoFluxoId, int solicitacaoId)
        {
            int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId");
            List <SolicitacaoDeDocumentos> documentosList = new List <SolicitacaoDeDocumentos>();

            model.SolicitacaoFornecedor.Documentos
            .ForEach(x =>
            {
                SolicitacaoDeDocumentos solicitacaoDeDocumentosSolicitada = _solicitacaoDocumentoService.BuscarPorIdSolicitacaoIdDescricaoDocumento((int)x.SolicitacaoID, x.DescricaoDocumentoId);
                if (!string.IsNullOrEmpty(x.ArquivoSubido) && solicitacaoDeDocumentosSolicitada != null)
                {
                    int idSolicitacaoDocumento = solicitacaoDeDocumentosSolicitada.ID;
                    var arquivoId = _fornecedorArquivoService.GravarArquivoSolicitacao(model.ContratanteID, x.ArquivoSubido, x.TipoArquivoSubido);

                    SolicitacaoDeDocumentos solicitacaoDeDocumentos = new SolicitacaoDeDocumentos()
                    {
                        ID                     = idSolicitacaoDocumento,
                        ARQUIVO_ID             = arquivoId,
                        DATA_VENCIMENTO        = x.PorValidade != null ? ((bool)x.PorValidade ? x.DataValidade : null) : null,
                        SOLICITACAO_ID         = x.SolicitacaoID,
                        DESCRICAO_DOCUMENTO_ID = solicitacaoDeDocumentosSolicitada.DESCRICAO_DOCUMENTO_ID,
                        LISTA_DOCUMENTO_ID     = solicitacaoDeDocumentosSolicitada.LISTA_DOCUMENTO_ID
                    };
                    documentosList.Add(solicitacaoDeDocumentos);
                }
            });
            documentosList.ForEach(x =>
            {
                _solicitacaoDocumentoService.Update(x);
            });

            var papelAtual = _papelService.BuscarPorContratanteETipoPapel(model.ContratanteID, (int)EnumTiposPapel.Fornecedor).ID;

            var solDocumentos = _solicitacaoService.BuscarPorId(solicitacaoId);

            _tramiteService.AtualizarTramite(model.ContratanteID, solicitacaoId, solDocumentos.FLUXO_ID, papelAtual, 2, solDocumentos.USUARIO_ID);
        }
        public JsonResult ReceitaFederalCNPJ(string cnpj, int contratante, int tipoFornecedor, int solicitacaoId)
        {
            string          path     = Server.MapPath("~/");
            RoboReceitaCNPJ roboCNPJ = new RoboReceitaCNPJ();

            roboCNPJ = roboCNPJ.CarregaRoboCNPJ(cnpj, path);

            try
            {
                SOLICITACAO solicitacao = _solicitacaoService.BuscarPorId(solicitacaoId);

                SolicitacaoCadastroFornecedor solForn = solicitacao.SolicitacaoCadastroFornecedor.First();
                ROBO robo = solicitacao.ROBO.FirstOrDefault();

                roboCNPJ.GravaRoboReceita(roboCNPJ, ref robo);
                //_solicitacaoService.Alterar(solicitacao);
                //Db.Entry(robo).State = EntityState.Modified;
                //_repositorios.roboBP.Alterar(robo);

                if (roboCNPJ.Code < 100)
                {
                    if (roboCNPJ.Code == 1)
                    {
                        solForn.PJPF_TIPO     = tipoFornecedor;
                        solForn.RAZAO_SOCIAL  = roboCNPJ.Data.RazaoSocial;
                        solForn.NOME_FANTASIA = roboCNPJ.Data.NomeFantasia;
                        if (roboCNPJ.Data.AtividadeEconomicaPrincipal.Length > 10 && !roboCNPJ.Data.AtividadeEconomicaPrincipal.Contains("*"))
                        {
                            solForn.CNAE = roboCNPJ.Data.AtividadeEconomicaPrincipal.Substring(0, 10).Replace(".", "").Replace("-", "");
                        }
                        solForn.CNPJ        = cnpj.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "");;
                        solForn.ENDERECO    = roboCNPJ.Data.Logradouro;
                        solForn.NUMERO      = roboCNPJ.Data.Numero;
                        solForn.COMPLEMENTO = roboCNPJ.Data.Complemento;
                        solForn.CEP         = roboCNPJ.Data.CEP;
                        solForn.BAIRRO      = roboCNPJ.Data.Bairro;
                        solForn.CIDADE      = roboCNPJ.Data.Municipio;
                        solForn.UF          = roboCNPJ.Data.UF;
                        //Db.Entry(solForn).State = EntityState.Modified;
                        //_repositorios.solicitacaoCadastroPJPFBP.Alterar(solForn);
                    }
                }

                ROBO_LOG entityLog = new ROBO_LOG()
                {
                    COD_RETORNO    = roboCNPJ.Code,
                    DATA           = DateTime.Now,
                    MENSAGEM       = roboCNPJ.Data.Message,
                    ROBO           = EnumRobo.ReceitaFederal.ToString(),
                    CONTRATANTE_ID = contratante
                };
                solicitacao.WFD_PJPF_ROBO_LOG.Add(entityLog);
                _solicitacaoService.Alterar(solicitacao);
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                ViewBag.MensagemErro = "Erro ao tentar Incluir o Novo Fornecedor!";
                throw;
            }
            catch (Exception ex)
            {
                ViewBag.MensagemErro = "Erro ao tentar Incluir o Novo Fornecedor!";
                Log.Error(string.Format("Error ao executar o método ReceitaFederalCNPJ: {0}", ex));
            }

            return(Json(roboCNPJ));
        }