Exemple #1
0
        /// <summary>
        /// Show Logg Type Error
        /// </summary>
        /// <param name="Exception">Exception que gerou o erro</param>
        public static void Error(Exception exp)
        {
            if (exp is PointBlankException)
            {
                Warning(PointBlankException.GetMessageFull(exp, false));
                return;
            }

            Error(PointBlankException.GetMessageFull(exp, true));
        }
Exemple #2
0
 /// <summary>
 /// Show Logg Type Error
 /// </summary>
 /// <param name="Exception">Exception que gerou o erro</param>
 /// <param name="complemento">Complemento da mensagem de erro</param>
 /// <param name="stackTrace">Se true indica que será mostrado stackTrace</param>
 public static void Error(Exception exp, string complemento, bool stackTrace)
 {
     Error(PointBlankException.GetMessageFull(new PointBlankException(complemento, exp), stackTrace));
 }
Exemple #3
0
        /// <summary>
        /// Criar canal de comunicação Wcf
        /// </summary>
        /// <typeparam name="TChannel">Contrato wcf</typeparam>
        /// <param name="enderecoUrl">Endereço url</param>
        /// <param name="enderecoPorta">Endereço Porta</param>
        /// <param name="chaveSeguranca">Chave de segurança (Descriptografada)</param>
        /// <param name="httpBinding">Objeto NetTcpBinding</param>
        /// <param name="nomeServico">Nome do serviço</param>
        /// <param name="duplex">Identifica se é um canal duplex</param>
        /// <param name="callBack">Eventos de callback para canal duplex</param>
        /// <returns>Canal criado</returns>
        public static TChannel CriarNovoCanalWcf <TChannel>(
            string enderecoUrl,
            int enderecoPorta,
            Binding httpBinding,
            string nomeServico,
            bool duplex,
            object callBack)
        {
            try
            {
                // Controle
                EndpointAddress endPoint = new EndpointAddress(new Uri(string.Format("net.tcp://{0}:{1}/PointBlankCore/{2}", enderecoUrl, enderecoPorta, nomeServico)));

                // ChannelFactory
                ChannelFactory <TChannel> scf = null;
                switch (duplex)
                {
                case true:
                    scf = new DuplexChannelFactory <TChannel>(new InstanceContext(callBack), httpBinding, endPoint);
                    break;

                default:
                    scf = new ChannelFactory <TChannel>(httpBinding, endPoint);
                    break;
                }

                // Criar o canal de comunicação
                TChannel canalRetorno = scf.CreateChannel();

                // Validar conexão
                try
                {
                    WcfNetwork.ValidarConexao(canalRetorno, enderecoUrl, enderecoPorta, false);
                }
                catch
                {
                    try
                    {
                        scf.Abort();
                    }
                    catch
                    {
                        Logger.Error("[WcfNetWork] - Erro ao Abortar o Canal WCF");
                    }

                    throw;
                }

                // Retorno
                return(canalRetorno);
            }
            catch (PointBlankException)
            {
                throw;
            }
            catch (Exception exp)
            {
                // Erro gerado ao acionar o invoke do método de validação
                if ((exp is TargetInvocationException) && (exp.InnerException != null))
                {
                    // Erro de segurança
                    if ((exp.InnerException is MessageSecurityException) && (exp.InnerException.InnerException != null))
                    {
                        throw new PointBlankException(PointBlankException.GetMessageFull(exp.InnerException.InnerException, true));
                    }

                    // Identificar se foi erro de time-out
                    if (exp.InnerException is TimeoutException)
                    {
                        throw new PointBlankException("Não foi possível conectar no servidor de aplicação (Erro de Timeout)");
                    }

                    throw new PointBlankException("Não foi possível conectar no servidor de aplicação.", exp.InnerException);
                }

                // Alterar tipo do exception para o padrão
                throw new PointBlankException("Não foi possível conectar no servidor de aplicação!", exp);
            }
        }