예제 #1
0
 public String BuscaExtensaoArquivo(string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         return(Path.GetExtension(path).ToLower());
     }
 }
예제 #2
0
 public void DeletarArquivo(string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         File.Delete(path);
     }
 }
예제 #3
0
 public PdfReader InstanciarPdfReader(string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         return(new PdfReader(path));
     }
 }
예제 #4
0
 public byte[] GetBytesArquivo(string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         return(File.ReadAllBytes(path));
     }
 }
예제 #5
0
 public PdfCopy InstanciarPdfCopy(Document doc, string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         return(new PdfCopy(doc, new FileStream(path, FileMode.Create)));
     }
 }
예제 #6
0
 public bool DiretorioExiste(string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         return(Directory.Exists(path));
     }
 }
예제 #7
0
        private void Init(string Url)
        {
            var intName = typeof(T).Name;

            var url2   = Url.Split('.');
            var urlNew = string.Format("http://{0}:{1}/{2}", RedeUtil.GetHostName(), EnvironmentInformation.ServerPort, Url);

            if (Url.Contains(".soap"))
            {
                //"Servers.Math.MathController.soap" << vai chegar assim
                //retira o .soap se tiver
                Url  = Url.Replace(".soap", "/");
                Url += intName;
                Url += ".soap";
            }
            else
            {
                //"Servers.Math.MathController" << vai chegar assim
                Url += "/";
                Url += intName;
                Url += ".soap";
            }
            ////"Servers.Math.MathController/IMath.soap" << vai sair assim
            _binding = new BasicHttpBinding(BasicHttpSecurityMode.None)
            {
                MaxBufferSize          = int.MaxValue,
                MaxReceivedMessageSize = int.MaxValue
            };
            _endpoint       = new EndpointAddress(string.Format("http://{0}:{1}/{2}", RedeUtil.GetHostName(), EnvironmentInformation.ServerPort, Url));
            _connectionInfo = new ConnectionInfo();
        }
예제 #8
0
 public void CriarDiretorio(string caminho)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         Directory.CreateDirectory(caminho);
     }
 }
예제 #9
0
 public void MoverArquivo(string pathOrigem, string pathDestino)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         File.Move(pathOrigem, pathDestino);
     }
 }
        public void DeveLocalizarOEnderecoIpDoServidor()
        {
            IPAddress enderecoIpServidor = RedeUtil.GetEnderecoIp("Lab6-gabriel");

            Assert.IsNotNull(enderecoIpServidor, "Deveria ter descoberto o ip do servidor");
            enderecoIpServidor = RedeUtil.GetEnderecoIp("Lab1-andersonli");
            Assert.IsNotNull(enderecoIpServidor, "Deveria ter descoberto o ip do servidor");
        }
예제 #11
0
 public void RemoverDiretorio(string path)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         if (Directory.Exists(path))
         {
             Directory.Delete(path, true);
         }
     }
 }
예제 #12
0
 public void CriarDiretorios(IEnumerable <string> caminhos)
 {
     using (RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
     {
         foreach (var caminho in caminhos)
         {
             Directory.CreateDirectory(caminho);
         }
     }
 }
예제 #13
0
        public static IEnumerable <ArquivoVM> ArmazenarArquivosParaProcessamento(IEnumerable <HttpPostedFileBase> arquivos, ArquivoServico servico)
        {
            var arquivosArmazenados = new List <ArquivoVM>();
            var caminho             = String.Format(@"{0}\{1}", servico.CaminhoDiretorio, ArquivoServico.PastaTempUpload);
            var dto = new ArquivoVM();

            try
            {
                using (servico.Conexao = RedeUtil.RecuperarConexaoRede(servico.CaminhoDiretorio, servico.Usuario))
                {
                    Directory.CreateDirectory(caminho);

                    foreach (var item in arquivos)
                    {
                        var nomeArquivo = ValidaNomeArquivoParaUpload(item.FileName);
                        var path        = String.Format(@"{0}\{1}", caminho, nomeArquivo);

                        dto = new ArquivoVM()
                        {
                            CaminhoArquivo = path,
                            NomeArquivo    = nomeArquivo
                        };

                        /*
                         * Utilizando filestream ao invés do método SaveAs do HttpPostedFileBase
                         * devido ao um bug de envio de arquivo pdf corrompido
                         */
                        using (FileStream arquivo = new FileStream(path, FileMode.Create))
                        {
                            item.InputStream.CopyTo(arquivo);
                        }

                        dto.ExtensaoArquivo = Path.GetExtension(path).ToLower();

                        arquivosArmazenados.Add(dto);
                    }
                }
            }
            catch (Exception e)
            {
                servico.Conexao.Dispose();

                if (!String.IsNullOrEmpty(dto.CaminhoArquivo))
                {
                    dto.ArquivoFalhouAoImportar = true;
                    arquivosArmazenados.Add(dto);
                }
                else
                {
                    throw new Exception("Erro ao tentar importar arquivos" + e.Message, e.InnerException);
                }
            }

            return(arquivosArmazenados);
        }
예제 #14
0
 private void radioGroup1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (radioServerName.SelectedIndex == 1)
     {
         this.txtServerName.Text = RedeUtil.GetHostName();
     }
     else if (radioServerName.SelectedIndex == 2)
     {
         this.txtServerName.Text = RedeUtil.GetLocalIPAddress();
     }
 }
 /// <summary>
 /// Método responsável por iniciar o servidor.
 /// </summary>
 protected void IniciarServidor()
 {
     wexServer = new WexMultiAccessManager();
     try
     {
         wexServer.EnderecoIp = RedeUtil.GetEnderecoIpComputadorAtual().ToString();
         wexServer.Porta      = Convert.ToInt16(ConfigurationManager.AppSettings.Get("PortaManager"));
     }
     catch (Exception ex)
     {
         log.Info(String.Format("Exception: {0}" + Environment.NewLine + " StackTrace: {1}", ex.Message, ex.StackTrace));
     }
 }
예제 #16
0
        public void GerarProcessamento(LoteDTO lote)
        {
            try
            {
                using (Conexao = RedeUtil.RecuperarConexaoRede(CaminhoDiretorio, Usuario))
                {
                    CriarEstruturaDiretorios(lote.AnoExercicio);

                    MigrarArquivosUpload(lote);

                    if (!lote.Individual)
                    {
                        lote.ContribuintesArquivoTxt = LerDirfTxt(lote);
                    }

                    SplitLote(lote);
                }
            }
            catch (NegocioException e)
            {
                foreach (var arquivo in lote.ArquivosImportados)
                {
                    File.Delete(arquivo.CaminhoArquivo);
                }

                Conexao.Dispose();

                throw new NegocioException(e.Message, e.InnerException);
            }
            catch (Exception e)
            {
                Conexao.Dispose();

                lote.TipoSituacao = TipoSituacao.Erro;
                lote.CodigoErro   = Marshal.GetExceptionCode();
                lote.MensagemErro = e.Message;

                if (Contribuinte != null)
                {
                    Contribuinte.TipoSituacao = TipoSituacao.Erro;
                    Contribuinte.Status       = StatusContribuinte.FalhaArquivo;
                }

                _gir.GravarRotina(lote);

                throw new Exception(e.Message, e.InnerException);
            }
        }
예제 #17
0
        public FileResult BuscaPdf(string fileName, int ano)
        {
            if (fileName == null && ano == 0)
            {
                throw new Exception("Parâmetros inválidos");
            }

            var consulta = new ConsultaInformeColaboradorQueryHandler();
            var filtro   = new InformeColaboradorFiltro {
                AnoExercicio = ano, CPFCNPJ = fileName
            };

            var arquivo = consulta.Execute(filtro).FirstOrDefault();

            var caminhoDir      = arquivo.CaminhoDiretorio;
            var nomeServer      = ConfigurationManager.AppSettings["NomeServer"].RemoveContraBarra();
            var diretorioServer = ConfigurationManager.AppSettings["DiretorioServer"].RemoveContraBarra();
            var raizPathInformesColaboradores = String.Format(@"\\{0}\{1}", nomeServer, diretorioServer);

            while (Path.IsPathRooted(caminhoDir))
            {
                caminhoDir = caminhoDir.Remove(0, 1);
            }

            var path = Path.Combine(raizPathInformesColaboradores, caminhoDir, fileName +
                                    arquivo.ExtensaoArquivo);

            var servico = new ArquivoServico();

            try
            {
                using (servico.Conexao = RedeUtil.RecuperarConexaoRede(servico.CaminhoDiretorio, servico.Usuario))
                {
                    FileStream file = new FileStream(path, FileMode.Open);
                    return(File(file, "application/pdf", fileName + ".pdf"));
                }
            }
            catch (Exception e)
            {
                servico.Conexao.Dispose();

                throw new Exception("Erro ao tentar baixar arquivo " + arquivo.CPFCNPJ + " " + e.Message, e.InnerException);
            }
        }
예제 #18
0
파일: XFrmMenu.cs 프로젝트: gercyc/ITE.ERP
        private void MonitorarStatusConexao()
        {
            if (RedeUtil.IsNetworkAvailable())
            {
                _toolTipItem1.Text       = "Trabalhando online";
                barStaticFlagNet.Caption = "Online";
                barStaticIcoNet.Glyph    = Properties.Resources.bolocalization_16x16;
            }
            else
            {
                _toolTipItem1.Text       = "Trabalhando offline";
                barStaticFlagNet.Caption = "Offline";
                barStaticIcoNet.Glyph    = Properties.Resources.country_16x16;
            }
            _superToolTip1.Items.Clear();

            _superToolTip1.Items.Add(_toolTipItem1);
            barStaticFlagNet.SuperTip = _superToolTip1;
        }
예제 #19
0
        public static void Main(string[] args)
        {
            //Variáveis de configurações
            _arquivoServico = new ArquivoServico();
            _gir            = new GIRServico();
            Ano             = 2018;

            LoteDTO lote;

            using (_arquivoServico.Conexao = RedeUtil.RecuperarConexaoRede(_arquivoServico.CaminhoDiretorio, _arquivoServico.Usuario))
            {
                Console.WriteLine("==========Teste de performance em arquivos==========");
                Console.WriteLine("Digite SIM para processamento individual");
                Console.WriteLine("Digite NÂO para processamento em lote");
                lote = GerarLote();
                var frase = Console.ReadLine();

                if (!string.IsNullOrEmpty(frase) && frase.ToLower() == "sim")
                {
                    lote.Individual = true;
                }
                else
                {
                    lote.ContribuintesArquivoTxt = _arquivoServico.LerDirfTxt(lote);
                }

                var tarefas = new List <Task>();

                //Para cada arquivo importado (upload) cria-se task para fazer a divisão desses arquivos
                foreach (var arquivo in lote.ArquivosImportados.Where(a => a.ExtensaoArquivo == ".pdf"))
                {
                    var tarefa = new Task(() => { Rotina(arquivo, lote); });
                    tarefas.Add(tarefa);
                    tarefa.Start();
                }

                //Depois que as tarefas terminarem de ser executadas. Verifica-se por ultimo, se houver erro ou não.
                var continuation = Task.Factory.ContinueWhenAll(tarefas.ToArray(), (antecedents) =>
                {
                    if (antecedents.All(a => a.Exception == null))
                    {
                        try
                        {
                            RenomearArquivos(lote);
                            lote.TipoSituacao = TipoSituacao.Processado;
                            _gir.GravarRotina(lote);
                        }
                        catch (DbEntityValidationException)
                        {
                            throw;
                        }
                        catch (Exception e)
                        {
                            //Caso falha a renomeacao dos arquivos ou merge
                            lote.ContribuintesArquivoTxt.ForEach(c =>
                            {
                                if (c.Arquivo.CaminhoArquivo != null)
                                {
                                    c.Status       = StatusContribuinte.FalhaArquivo;
                                    c.TipoSituacao = TipoSituacao.Erro;
                                }
                            });
                            lote.ContribuinteIndividual.Status       = StatusContribuinte.FalhaArquivo;
                            lote.ContribuinteIndividual.TipoSituacao = TipoSituacao.Erro;

                            var exception = e.InnerException ?? e;
                            var w32ex     = exception as Win32Exception;

                            lote.TipoSituacao = TipoSituacao.Erro;
                            lote.CodigoErro   = (w32ex != null ? w32ex.ErrorCode : 0);
                            lote.MensagemErro = exception.Message;

                            _gir.GravarRotina(lote);

                            throw e;
                        }

                        Console.WriteLine("Todas as tarefas foram concluídas com sucesso!");
                        Debug.WriteLine("Todas as tarefas foram concluídas com sucesso!");
                    }
                    //Se houver qualquer exceção lançada em uma task, trataremos aqui esta exceção, neste bloco de codigo
                    else
                    {
                        var task = antecedents.FirstOrDefault(a => a.Exception.GetType() == typeof(NegocioException));
                        if (task != null)
                        {
                            var ex = task.Exception;
                            if (ex != null)
                            {
                                throw new NegocioException(ex.Message, ex.InnerException);
                            }
                        }

                        //Seta falha no arquivo pois não foi feito a renomeacao e nem o merge
                        lote.ContribuintesArquivoTxt.ForEach(c =>
                        {
                            if (c.Arquivo.CaminhoArquivo != null)
                            {
                                c.Status       = StatusContribuinte.FalhaArquivo;
                                c.TipoSituacao = TipoSituacao.Erro;
                            }
                        });
                        lote.ContribuinteIndividual.Status       = StatusContribuinte.FalhaArquivo;
                        lote.ContribuinteIndividual.TipoSituacao = TipoSituacao.Erro;

                        task = (antecedents.FirstOrDefault(a => a.Exception != null));

                        var exception = task.Exception.InnerException ?? task.Exception;
                        var w32ex     = exception as Win32Exception;

                        lote.TipoSituacao = TipoSituacao.Erro;
                        lote.CodigoErro   = (w32ex != null ? w32ex.ErrorCode : 0);
                        lote.MensagemErro = exception.Message;

                        _gir.GravarRotina(lote);

                        var exceptions = antecedents.Where(a => a.Exception != null).Select(a => a.Exception).ToList();
                        var excecoes   = new List <Exception>();

                        foreach (var excep in exceptions)
                        {
                            excecoes.Add(new Exception(excep.InnerException.Message, excep.InnerException));
                        }

                        AggregateException e = new AggregateException(excecoes);

                        Console.WriteLine("Ocorreu falhas no processamento - Split pdf falhou!");
                        Debug.WriteLine("Ocorreu falhas no processamento - Split pdf falhou!");

                        throw e;
                    }
                });

                continuation.Wait();
                Console.Read();
            }
        }
        public void DeveRetornarNuloQuandoOServidorDeDestinoNaoExistir()
        {
            IPAddress enderecoIpServidor = RedeUtil.GetEnderecoIp("Lab1000-gabriel");

            Assert.IsNull(enderecoIpServidor, "Não deveria possuir nenhum valor pois não existe o servidor solicitado");
        }