Пример #1
0
        public NetworkMessage CreateNetworkMessage(BinaryReader reader)
        {
            uint         byteCount  = reader.NetworkReadUInt32();
            CmppCommands command    = (CmppCommands)reader.NetworkReadUInt32();
            uint         sequenceId = reader.NetworkReadUInt32();

            CmppMessage message = null;

            switch (command)
            {
            case CmppCommands.Connect:
                message = new CmppMessageConnect();
                break;

            case CmppCommands.ConnectResponse:
                message = new CmppMessageConnectResponse();
                break;

            case CmppCommands.Submit:
                message = new CmppMessageSubmit();
                break;

            case CmppCommands.SubmitResponse:
                message = new CmppMessageSubmitResponse();
                break;

            case CmppCommands.Deliver:
                message = new CmppMessageDeliver();
                break;

            case CmppCommands.DeliverResponse:
                message = new CmppMessageDeliverResponse();
                break;

            case CmppCommands.ActiveTest:
                message = new CmppMessageActiveTest();
                break;

            case CmppCommands.ActiveTestResponse:
                message = new CmppMessageActiveTestResponse();
                break;

            case CmppCommands.Terminate:
                message = new CmppMessageTerminate();
                break;

            default:
                message = new CmppMessage();
                break;
            } //end switch

            if (message != null)
            {
                message.Command    = command;
                message.ByteCount  = byteCount;
                message.SequenceId = sequenceId;
                message.NetworkRead(reader);
            }
            return(message);
        }
Пример #2
0
        protected override async Task <bool> DoSendSmsAsync(string[] receivers, string content, SmsMessageEnvolope envolope)
        {
            await Task.Run(() =>
            {
                var sequenceId = this.SequenceId;

                var config    = this.GetClientConfiguration();
                var spCode    = config.SpCode;
                var serviceId = config.ServiceId;

                if (config.RemoveSignature)
                {
                    string signature = string.Empty;
                    content          = this.RemoveSignature(content, ref signature);

                    var spCodes = this.ServiceProviderCodes;
                    if (spCodes.ContainsKey(signature))
                    {
                        spCode = spCodes[signature];
                    }
                }


                var m = new CmppMessageSubmit()
                {
                    SequenceId             = sequenceId,
                    Content                = content,
                    Format                 = (byte)CmppEncodings.UCS2,
                    SourceId               = spCode,
                    ReceiverTerminalIds    = receivers,
                    ServiceId              = serviceId,
                    DeliveryReportRequired = 1,
                    FeeType                = this.SmsFeeType,
                    FeeUserType            = (byte)FeeUserType.SP,
                    FeeTerminalId          = spCode,
                    FeeTerminalType        = 0,
                    FeeCode                = this.SmsFeeCode,
                    Source                 = config.UserName,
                };

                envolope.SequenceId = sequenceId.ToString();
                envolope.Request    = m;
            });

            return(true);
        }
Пример #3
0
        public static void CalcuateContentByteCount(this CmppMessageSubmit message, CmppEncodings encoding)
        {
            var byteCount = GetEncoding(encoding).GetByteCount(message.Content);

            message.ContentByteCount = (byte)byteCount;
        }