Exemple #1
0
        /// <summary>
        /// Sends message to a remote SMPP server
        /// </summary>
        /// <param name="message">A message to send</param>
        /// <param name="timeOut">A value in miliseconds after which the send operation times out</param>
        public void SendMessage(ShortMessage message, int timeOut)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            //Check if connection is open
            if (vState != SmppConnectionState.Connected)
            {
                throw new SmppClientException("Sending message operation failed because the SmppClient is not connected");
            }

            string messageId = null;

            foreach (SendSmPDU pdu in message.GetMessagePDUs(vProperties.DefaultEncoding, vSmppEncodingService))
            {
                if (_Log.IsDebugEnabled)
                {
                    _Log.DebugFormat("SendMessage SendSmPDU: {0}", LoggingExtensions.DumpString(pdu, vSmppEncodingService));
                }
                ResponsePDU resp         = SendPdu(pdu, timeOut);
                var         submitSmResp = resp as SubmitSmResp;
                if (submitSmResp != null)
                {
                    if (_Log.IsDebugEnabled)
                    {
                        _Log.DebugFormat("SendMessage Response: {0}", LoggingExtensions.DumpString(resp, vSmppEncodingService));
                    }
                    messageId = ((SubmitSmResp)resp).MessageID;
                }
                message.ReceiptedMessageId = messageId;
                RaiseMessageSentEvent(message);
            }
        }
        private static void DeployBundlesTo(string where)
        {
            foreach (var bundle in _bundles.Where(x => x.SupportsCurrentPlatform))
            {
                _Log.DebugFormat("Attempting to deploy bundle: {0}", bundle);

                try
                {
                    foreach (var item in bundle.Resources)
                    {
                        _Log.DebugFormat("Deploying resource/file: {0}", item.FileName);

                        using (var stream = item.GetResourceStream())
                        {
                            DeployLibrary(stream, item.FileName, item.Date, where);
                        }
                    }
                }
                catch (Exception ex)
                {
                    var msg = string.Format("Deploying of bundle {0} failed.", bundle.GetType().Name);
                    throw new ApplicationException(msg, ex);
                }
            }
        }
 private void CloseStream()
 {
     if (_stream != null)
     {
         _Log.DebugFormat("Closing stream for: {0}", _filePath);
         _stream.Close();
         _stream.Dispose();
         _stream = null;
     }
 }
Exemple #4
0
    private MultiplexingConverter _GetConverter()
    {
        var obj = new MultiplexingConverter();

        obj.Begin           += (s, e) => _Log.DebugFormat("Conversion begin, phase count: {0}", e.Value);
        obj.Error           += (s, e) => _Log.Error(e.Value);
        obj.Warning         += (s, e) => _Log.Warn(e.Value);
        obj.PhaseChanged    += (s, e) => _Log.InfoFormat("PhaseChanged: {0} - {1}", e.Value, e.Value2);
        obj.ProgressChanged += (s, e) => _Log.InfoFormat("ProgressChanged: {0} - {1}", e.Value, e.Value2);
        obj.Finished        += (s, e) => _Log.InfoFormat("Finished: {0}", e.Value ? "success" : "failed!");
        return(obj);
    }
        public WkHtmlToPdfConverter()
        {
            bool useX11 = false;

            try
            {
                useX11 = SysConvert.ToBoolean(ConfigurationManager.AppSettings["WkHtmlToXSharp.UseX11"]);
            }
            catch (Exception ex)
            {
                _Log.Error("Unable to parse 'WkHtmlToXSharp.UseX11' app. setting.", ex);
            }

            // Try to deploy native libraries bundles.
            WkHtmlToXLibrariesManager.InitializeNativeLibrary();

            var version = NativeCalls.WkHtmlToPdfVersion();

            if (NativeCalls.wkhtmltopdf_init(useX11 ? 1 : 0) == 0)
            {
                throw new InvalidOperationException(string.Format("wkhtmltopdf_init failed! (version: {0}, useX11 = {1})", version, useX11));
            }

            _Log.DebugFormat("Initialized new converter instance (Version: {0}, UseX11 = {1})", version, useX11);
        }
Exemple #6
0
        private static void DeployLibraries()
        {
            var manager = new WkHtmlToXLibrariesManager();

            foreach (var bundle in _bundles.Where(x => x.SupportsCurrentPlatform))
            {
                _Log.DebugFormat("Attempting to deploy bundle: {0}", bundle);

                try
                {
                    bundle.DeployBundle(manager);
                }
                catch (Exception ex)
                {
                    var msg = string.Format("Deploying of bundle {0} failed.", bundle.GetType().Name);
                    throw new ApplicationException(msg, ex);
                }
            }
        }
Exemple #7
0
        /// <summary>
        /// Sends a user-specified Pdu(see the RoaminSMPP base library for
        /// Pdu types).  This allows complete flexibility for sending Pdus.
        /// </summary>
        /// <param name="packet">The Pdu to send.</param>
        /// <returns>The sequence number of the sent PDU, or null if failed.</returns>
        public uint SendPdu(Pdu packet)
        {
            _Log.DebugFormat("Sending PDU: {0}", packet);

            if (packet.SequenceNumber == 0)
            {
                packet.SequenceNumber = GenerateSequenceNumber();
            }

            var bytes = packet.GetEncodedPdu();

            try
            {
                if (asClient == null || !asClient.Connected)
                {
                    throw new InvalidOperationException("Session not connected to remote party.");
                }

                if (!(packet is SmppBind) && !_Bound)
                {
                    throw new InvalidOperationException("Session not bound to remote party.");
                }

                asClient.Send(bytes);
                return(packet.SequenceNumber);
            }
            catch
            {
                lock (_bindingLock)
                {
                    _Log.Debug("SendPdu failed, scheduling a re-bind operation.");
                    _ReBindRequired = true;
                }

                throw;                 // Let the exception flow..
            }
        }
Exemple #8
0
        private static void SendMessage(string command)
        {
            var parts  = command.Split(' ');
            var dest   = parts[1];
            var msgTxt = string.Join(" ", parts, 2, parts.Length - 2);

            if (string.IsNullOrEmpty(msgTxt))
            {
                msgTxt = @"السلام عليكم ورحمة الله وبركاته
هذه رسالة عربية
متعددة الاسطر";
            }

            TextMessage msg = new TextMessage();

            msg.DestinationAddress = dest;                     //Receipient number
            msg.SourceAddress      = smppConfig.SourceAddress; //Originating number
                                                               //msg.Text = "Hello, this is my test message!";
            msg.Text = msgTxt;
            msg.RegisterDeliveryNotification = true;           //I want delivery notification for this message
            msg.UserMessageReference         = GenerateUserMessageReference(smppConfig.UserMessageReferenceType);
            _Log.DebugFormat($"msg.UserMessageReference: {msg.UserMessageReference}");

            try
            {
                client.SendMessage(msg);
            }
            catch (SmppException smppEx)
            {
                _Log.ErrorFormat("smppEx.ErrorCode:({0}) {1} ", (int)smppEx.ErrorCode, smppEx.ErrorCode);
                _Log.Error(smppEx);
            }
            catch (Exception e)
            {
                _Log.Error("SendMessage:" + e.Message, e);
            }
            //client.BeginSendMessage(msg, SendMessageCompleteCallback, client);
        }
Exemple #9
0
        public WkHtmlToPdfConverter()
        {
            bool useX11 = false;

            try
            {
                useX11 = SysConvert.ToBoolean(ConfigurationManager.AppSettings["WkHtmlToXSharp.UseX11"]);
            }
            catch (Exception ex)
            {
                _Log.Error("Unable to parse 'WkHtmlToXSharp.UseX11' app. setting.", ex);
            }

            var ptr     = wkhtmltopdf_version();
            var version = Marshal.PtrToStringAnsi(ptr);

            if (!wkhtmltopdf_init(useX11 ? 1 : 0))
            {
                throw new InvalidOperationException(string.Format("wkhtmltopdf_init failed! (version: {0}, useX11 = {1})", version, useX11));
            }

            _Log.DebugFormat("Initialized new converter instance (Version: {0}, UseX11 = {1})", version, useX11);
        }
Exemple #10
0
        /// <summary>
        /// Constructs an AsyncSocketClient.
        /// </summary>
        /// <param name="bufferSize">The size of the receive buffer.</param>
        /// <param name="stateObject">The object to use for sending state
        /// information.</param>
        /// <param name="msgHandler">The user-defined message handling method.
        /// </param>
        /// <param name="closingHandler">The user-defined socket closing
        /// handling method.</param>
        /// <param name="errHandler">The user defined error handling method.
        /// </param>
        public AsyncSocketClient(Int32 bufferSize, object stateObject,
                                 MessageHandler msgHandler, SocketClosingHandler closingHandler,
                                 ErrorHandler errHandler)
        {
            _Log.DebugFormat("Initializing new instance ({0}).", this.GetHashCode());

            _Buffer      = new byte[BUFFER_SIZE];
            _StateObject = stateObject;

            //set handlers
            _MessageHandler     = msgHandler;
            _SocketCloseHandler = closingHandler;
            _ErrorHandler       = errHandler;

            //set the asynchronous method handlers
            _CallbackReadMethod  = new AsyncCallback(ReceiveComplete);
            _CallbackWriteMethod = new AsyncCallback(SendComplete);

            //haven't been disposed yet
            _IsDisposed = false;
        }
Exemple #11
0
 public void DebugFormat(IFormatProvider provider, String format, params Object[] args)
 {
     _log.DebugFormat(provider, format, args);
 }