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); }
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); }
public static void CalcuateContentByteCount(this CmppMessageSubmit message, CmppEncodings encoding) { var byteCount = GetEncoding(encoding).GetByteCount(message.Content); message.ContentByteCount = (byte)byteCount; }