protected override void HandleForwardMessage(ForwardMessage message) { try { this.ForwardMessage(message.ForwardId); } catch (Exception) { // Silently consume } }
public void Handle(StartOuterSagaCommand message) { Data.AccountId = message.AccountId; _log.WarnFormat("Handled StartOuterSagaCommand, AccountId={0}, SagaId={1}", message.AccountId, Data.Id); var forwardMessage = new ForwardMessage { AccountId = message.AccountId }; _log.WarnFormat("Sending ForwardMessage, AccountId={0}", forwardMessage.AccountId); Bus.SendLocal(forwardMessage); }
public async Task GetForwardMessageByIdAsync_ShouldReturnForwardMessage() { var forwardMessage = new ForwardMessage { Id = Guid.NewGuid(), Body = "Body", ChannelId = _channelId, OwnerId = _memberId, Created = DateTimeOffset.UtcNow }; await UnitOfWork.ForwardMessageRepository.AddForwardMessageAsync(forwardMessage); var foundMessage = await UnitOfWork.ForwardMessageRepository.GetForwardMessageAsync(forwardMessage.Id); foundMessage.Should().BeEquivalentTo(forwardMessage); }
public async Task AddForwardMessageAsync_ShouldCreateForwardMessage() { var forwardMessage = new ForwardMessage { Id = Guid.NewGuid(), Body = "Body", ChannelId = _channelId, OwnerId = _memberId, Created = DateTimeOffset.UtcNow }; await UnitOfWork.ForwardMessageRepository.AddForwardMessageAsync(forwardMessage); var createdForwardMessage = await UnitOfWork.ForwardMessageRepository.GetForwardMessageAsync(forwardMessage.Id); createdForwardMessage.Should().BeEquivalentTo(createdForwardMessage, options => options.Excluding(message => message.Owner)); }
public void Handle(ForwardMessage message) { _log.WarnFormat("Handled ForwardMessage, AccountId={0}, SagaId={1}", message.AccountId, Data.Id); var doSomethingCommand = new DoSomethingCommand { SagaId = Data.Id }; _log.WarnFormat("Sending DoSomethingCommand, SagaId={0}", doSomethingCommand.SagaId); Bus.Send(doSomethingCommand); var doSomethingElseCommand = new DoSomethingElseCommand { SagaId = Data.Id }; _log.WarnFormat("Sending DoSomethingElseCommand, SagaId={0}", doSomethingElseCommand.SagaId); Bus.Send(doSomethingElseCommand); }
public async Task DeleteForwardMessageAsync_ShouldDeleteForwardMessage() { var forwardMessage = new ForwardMessage { Id = Guid.NewGuid(), Body = "Body", ChannelId = _channelId, OwnerId = _memberId, Created = DateTimeOffset.UtcNow }; await UnitOfWork.ForwardMessageRepository.AddForwardMessageAsync(forwardMessage); await UnitOfWork.ForwardMessageRepository.DeleteForwardMessageAsync(forwardMessage.Id); var nullForwardMessage = await UnitOfWork.ForwardMessageRepository.GetForwardMessageAsync(forwardMessage.Id); nullForwardMessage.Should().BeNull(); }
public async Task OnMessageAsync(IAgentContext agentContext, UnpackedMessageContext messageContext) { if (messageContext.GetMessageType() == new ForwardMessage().Type) { ForwardMessage forwardMessage = messageContext.GetMessage <ForwardMessage>(); //if (forwardMessage.To == Environment.GetEnvironmentVariable("ACA_ROUTE")) if (forwardMessage.To == this.acaList.FirstOrDefault(kvp => kvp.Key == forwardMessage.To).Key) { //var uri = new Uri(Environment.GetEnvironmentVariable("ACA_ENDPOINT")); var uri = new Uri(this.acaList.First(kvp => kvp.Key == forwardMessage.To).Value); var dispatcher = GetDispatcher(uri.Scheme); //byte[] wireMsg = Encoding.UTF8.GetBytes(forwardMessage.ToString()); await dispatcher.DispatchAsync(uri, new PackedMessageContext(forwardMessage.Message)); } } }
public async Task GetMessageWithOwnerAndForwardedMessageAsync_ShouldReturnMessageWithOwnerAndForwardMessage() { var messageId = new Guid("D459FCFB-F436-4B80-AD08-670630109C9C"); var expectedMessage = new Message { Id = messageId, Body = "Body", Created = DateTimeOffset.UtcNow, ImageUrl = "ImageUrl", Type = MessageType.Default, ChannelId = _channelId, Owner = _member, OwnerId = _member.Id, Updated = DateTimeOffset.Now, ForwardMessageId = messageId, AccessibilityStatus = AccessibilityStatus.Present }; await UnitOfWork.MessageRepository.AddMessageAsync(expectedMessage); var forwardMessage = new ForwardMessage { Id = expectedMessage.Id, Body = "Body", ChannelId = _channelId, OwnerId = _member.Id, Created = DateTimeOffset.UtcNow }; await UnitOfWork.ForwardMessageRepository.AddForwardMessageAsync(forwardMessage); expectedMessage.ForwardMessageId = forwardMessage.Id; expectedMessage.ForwardedMessage = forwardMessage; var actualMessage = await UnitOfWork.MessageRepository.GetMessageWithOwnerAndForwardMessageAsync(expectedMessage.Id); actualMessage.Should().BeEquivalentTo(expectedMessage); }
public async Task AddForwardMessageAsync(ForwardMessage message) { using (var connection = _sqlConnectionFactory.CreateConnection()) { var sqlQuery = $@" INSERT INTO ForwardMessages ( {nameof(ForwardMessage.Id)}, {nameof(ForwardMessage.Body)}, {nameof(ForwardMessage.Created)}, {nameof(ForwardMessage.ChannelId)}, {nameof(ForwardMessage.OwnerId)} ) VALUES ( @{nameof(ForwardMessage.Id)}, @{nameof(ForwardMessage.Body)}, @{nameof(ForwardMessage.Created)}, @{nameof(ForwardMessage.ChannelId)}, @{nameof(ForwardMessage.OwnerId)} )"; await connection.ExecuteScalarAsync(sqlQuery, message); } }
private void DealPersonalDeviceMessage(TopflytechCodec.Entities.Message message, Socket socket) { string strClientKey = socket.RemoteEndPoint.ToString(); if (message is TopflytechCodec.Entities.SignInMessage) { SignInMessage signInMessage = (SignInMessage)message; ShowMsg("receive signIn Message imei :" + signInMessage.Imei + " serial no: " + signInMessage.SerialNo + " firmware :" + signInMessage.Firmware + " software: " + signInMessage.Software + "platform:" + signInMessage.Platform); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = personalEncoder.getSignInMsgReply(signInMessage.Imei, true, signInMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = personalEncoder.getSignInMsgReply(signInMessage.Imei, true, signInMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.HeartbeatMessage) { HeartbeatMessage heartbeatMessage = (HeartbeatMessage)message; ShowMsg("receive heartbeat Message imei :" + heartbeatMessage.Imei + " serial no: " + heartbeatMessage.SerialNo); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = personalEncoder.getHeartbeatMsgReply(heartbeatMessage.Imei, true, heartbeatMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = personalEncoder.getHeartbeatMsgReply(heartbeatMessage.Imei, true, heartbeatMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.LocationInfoMessage) { LocationInfoMessage locationInfoMessage = (LocationInfoMessage)message; ShowMsg("receive location Info Message imei :" + locationInfoMessage.Imei + " serial no: " + locationInfoMessage.SerialNo); ShowMsg("lat:" + locationInfoMessage.Latitude + " lng:" + locationInfoMessage.Longitude); //some model device, these is the code of 8806 plus. //if (message.IsNeedResp) //{ // byte[] reply = personalEncoder.getLocationMsgReply(locationInfoMessage.Imei, true, locationInfoMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = personalEncoder.getLocationMsgReply(locationInfoMessage.Imei, true, locationInfoMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.LocationAlarmMessage) { LocationAlarmMessage locationAlarmMessage = (LocationAlarmMessage)message; ShowMsg("receive location alarm Message imei :" + locationAlarmMessage.Imei + " serial no: " + locationAlarmMessage.SerialNo + " Alarm is : " + locationAlarmMessage.OriginalAlarmCode); ShowMsg("lat:" + locationAlarmMessage.Latitude + " lng:" + locationAlarmMessage.Longitude); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = personalEncoder.getLocationAlarmMsgReply(locationAlarmMessage.Imei, true, locationAlarmMessage.SerialNo, locationAlarmMessage.OriginalAlarmCode); // dict[strClientKey].Send(reply); //} byte[] reply = personalEncoder.getLocationAlarmMsgReply(locationAlarmMessage.Imei, true, locationAlarmMessage.SerialNo, locationAlarmMessage.OriginalAlarmCode); dict[strClientKey].Send(reply); } else if (message is NetworkInfoMessage) { NetworkInfoMessage networkInfoMessage = (NetworkInfoMessage)message; ShowMsg("receive network info message :" + networkInfoMessage.Imei); //if (message.IsNeedResp) //{ // byte[] reply = personalEncoder.getNetworkMsgReply(networkInfoMessage.Imei, networkInfoMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = personalEncoder.getNetworkMsgReply(networkInfoMessage.Imei, networkInfoMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is WifiMessage) { WifiMessage wifiMessage = (WifiMessage)message; ShowMsg("receive wifi location message :" + wifiMessage.Imei); byte[] reply = personalEncoder.getWifiMsgReply(wifiMessage.Imei, wifiMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is ForwardMessage) { ForwardMessage forwardMessage = (ForwardMessage)message; ShowMsg("receive debug message :" + forwardMessage.Imei + " : " + forwardMessage.Content); } else if (message is USSDMessage) { USSDMessage ussdMessage = (USSDMessage)message; ShowMsg("receive ussd message :" + ussdMessage.Imei + " : " + ussdMessage.Content); } else if (message is BluetoothPeripheralDataMessage) { BluetoothPeripheralDataMessage bluetoothPeripheralDataMessage = (BluetoothPeripheralDataMessage)message; ShowMsg("receive bluetooth peripheral data message:" + bluetoothPeripheralDataMessage.Imei); //if (message.IsNeedResp) //{ // byte[] reply = personalEncoder.getBluetoothPeripheralMsgReply(bluetoothPeripheralDataMessage.Imei, bluetoothPeripheralDataMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = personalEncoder.getBluetoothPeripheralMsgReply(bluetoothPeripheralDataMessage.Imei, bluetoothPeripheralDataMessage.SerialNo); dict[strClientKey].Send(reply); } }
private void DealObdDeviceMessage(TopflytechCodec.Entities.Message message, Socket socket) { string strClientKey = socket.RemoteEndPoint.ToString(); if (message is TopflytechCodec.Entities.SignInMessage) { SignInMessage signInMessage = (SignInMessage)message; ShowMsg("receive signIn Message imei :" + signInMessage.Imei + " serial no: " + signInMessage.SerialNo + " firmware :" + signInMessage.Firmware + " software: " + signInMessage.Software + "platform:" + signInMessage.Platform); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getSignInMsgReply(signInMessage.Imei, true, signInMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getSignInMsgReply(signInMessage.Imei, true, signInMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.HeartbeatMessage) { HeartbeatMessage heartbeatMessage = (HeartbeatMessage)message; ShowMsg("receive heartbeat Message imei :" + heartbeatMessage.Imei + " serial no: " + heartbeatMessage.SerialNo); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getHeartbeatMsgReply(heartbeatMessage.Imei, true, heartbeatMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getHeartbeatMsgReply(heartbeatMessage.Imei, true, heartbeatMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.LocationInfoMessage) { LocationInfoMessage locationInfoMessage = (LocationInfoMessage)message; ShowMsg("receive location Info Message imei :" + locationInfoMessage.Imei + " serial no: " + locationInfoMessage.SerialNo); ShowMsg("lat:" + locationInfoMessage.Latitude + " lng:" + locationInfoMessage.Longitude); //some model device, these is the code of 8806 plus. //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getLocationMsgReply(locationInfoMessage.Imei, true, locationInfoMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getLocationMsgReply(locationInfoMessage.Imei, true, locationInfoMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.LocationAlarmMessage) { LocationAlarmMessage locationAlarmMessage = (LocationAlarmMessage)message; ShowMsg("receive location alarm Message imei :" + locationAlarmMessage.Imei + " serial no: " + locationAlarmMessage.SerialNo + " Alarm is : " + locationAlarmMessage.OriginalAlarmCode); ShowMsg("lat:" + locationAlarmMessage.Latitude + " lng:" + locationAlarmMessage.Longitude); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getLocationAlarmMsgReply(locationAlarmMessage.Imei, true, locationAlarmMessage.SerialNo, locationAlarmMessage.OriginalAlarmCode); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getLocationAlarmMsgReply(locationAlarmMessage.Imei, true, locationAlarmMessage.SerialNo, locationAlarmMessage.OriginalAlarmCode); dict[strClientKey].Send(reply); } else if (message is GpsDriverBehaviorMessage) { GpsDriverBehaviorMessage gpsDriverBehaviorMessage = (GpsDriverBehaviorMessage)message; ShowMsg("receive gps driver behavior message :" + gpsDriverBehaviorMessage.Imei); ShowMsg("behavior is :" + getGpsDriverBehaviorDescription(gpsDriverBehaviorMessage.BehaviorType)); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getGpsDriverBehaviorMsgReply(gpsDriverBehaviorMessage.Imei, gpsDriverBehaviorMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getGpsDriverBehaviorMsgReply(gpsDriverBehaviorMessage.Imei, gpsDriverBehaviorMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.ConfigMessage) { ConfigMessage configMessage = (ConfigMessage)message; ShowMsg("receive config Message imei :" + configMessage.Imei + " serial no: " + configMessage.SerialNo + " config Content:" + configMessage.ConfigResultContent); } else if (message is TopflytechCodec.Entities.AccelerationDriverBehaviorMessage) { AccelerationDriverBehaviorMessage accelerationDriverBehaviorMessage = (AccelerationDriverBehaviorMessage)message; ShowMsg("receive acceleration driver behavior message :" + accelerationDriverBehaviorMessage.Imei); ShowMsg("behavior is :" + getGpsDriverBehaviorDescription(accelerationDriverBehaviorMessage.BehaviorType)); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getAccelerationDriverBehaviorMsgReply(accelerationDriverBehaviorMessage.Imei, accelerationDriverBehaviorMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getAccelerationDriverBehaviorMsgReply(accelerationDriverBehaviorMessage.Imei, accelerationDriverBehaviorMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is TopflytechCodec.Entities.AccidentAccelerationMessage) { AccidentAccelerationMessage accidentAccelerationMessage = (AccidentAccelerationMessage)message; ShowMsg("receive accident acceleration message :" + accidentAccelerationMessage.Imei); //some model device,need serial no,reply this message //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getAccelerationAlarmMsgReply(accidentAccelerationMessage.Imei, accidentAccelerationMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getAccelerationAlarmMsgReply(accidentAccelerationMessage.Imei, accidentAccelerationMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is BluetoothPeripheralDataMessage) { BluetoothPeripheralDataMessage bluetoothPeripheralDataMessage = (BluetoothPeripheralDataMessage)message; ShowMsg("receive bluetooth peripheral data message:" + bluetoothPeripheralDataMessage.Imei); //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getBluetoothPeripheralMsgReply(bluetoothPeripheralDataMessage.Imei, bluetoothPeripheralDataMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getBluetoothPeripheralMsgReply(bluetoothPeripheralDataMessage.Imei, bluetoothPeripheralDataMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is NetworkInfoMessage) { NetworkInfoMessage networkInfoMessage = (NetworkInfoMessage)message; ShowMsg("receive network info message :" + networkInfoMessage.Imei); //if (message.IsNeedResp) //{ // byte[] reply = t880xdEncoder.getNetworkMsgReply(networkInfoMessage.Imei, networkInfoMessage.SerialNo); // dict[strClientKey].Send(reply); //} byte[] reply = t880xdEncoder.getNetworkMsgReply(networkInfoMessage.Imei, networkInfoMessage.SerialNo); dict[strClientKey].Send(reply); } else if (message is ForwardMessage) { ForwardMessage forwardMessage = (ForwardMessage)message; ShowMsg("receive debug message :" + forwardMessage.Imei + " : " + forwardMessage.Content); } else if (message is USSDMessage) { USSDMessage ussdMessage = (USSDMessage)message; ShowMsg("receive ussd message :" + ussdMessage.Imei + " : " + ussdMessage.Content); } }
public static async Task RunBot() { var bot = new TelegramBot(Token) { WebProxy = new System.Net.WebProxy("127.0.0.1:6661") }; var me = await bot.MakeRequestAsync(new GetMe()); Console.WriteLine("usename is {0}", me.Username); long offset = 0; int whilecount = 0; while (true) { whilecount++; var updates = await bot.MakeRequestAsync(new GetUpdates() { Offset = offset }); Console.WriteLine("----------------------------------------"); try { foreach (var update in updates) { offset = update.UpdateId + 1; var text = update.Message.Text; Console.WriteLine(update.Message.From.FirstName + " and ID is : " + update.Message.Chat.Id + " : " + text); if (text == "/start") { var req = new SendMessage(update.Message.Chat.Id, "چی میخوای؟"); await bot.MakeRequestAsync(req); continue; } else if (text.Contains("گمشو") && update.Message.From.Username == "infeXno") { var req = new SendMessage(update.Message.Chat.Id, "دیگه دوستتون ندارم :("); await bot.MakeRequestAsync(req); var leave = new LeaveChat(update.Message.Chat.Id); await bot.MakeRequestAsync(leave); } else if (text == "job is") { string xxx = Convert.ToString(job); var req = new SendMessage(update.Message.Chat.Id, "job value is : " + xxx); await bot.MakeRequestAsync(req); continue; } else if (text.Contains("دلار")) { if (update.Message.From.Username != "infeXno") { WebClient n = new WebClient(); var json = n.DownloadString("http://www.tgju.org/?act=sanarateservice&client=tgju&noview&type=json"); Arz a1 = JsonConvert.DeserializeObject<Arz>(json); string dollar = a1.sana_buy_usd.price; string toman = dollar.Remove(6); string nocomma = toman.Replace(",", ""); var req = new SendMessage(update.Message.Chat.Id, "الان قیمت هر دلار " +nocomma + " تومن هستش"); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } else { WebClient n = new WebClient(); var json = n.DownloadString("http://www.tgju.org/?act=sanarateservice&client=tgju&noview&type=json"); Arz a1 = JsonConvert.DeserializeObject<Arz>(json); string dollar = a1.sana_buy_usd.price; string toman = dollar.Remove(6); string nocomma = toman.Replace(",", ""); var req = new SendMessage(update.Message.Chat.Id, "ددی الان قیمت هر دلار " + nocomma + " تومن هستش ^^♥"); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } continue; } else if (text.Contains("چندمه") || text.Contains("تاریخ") || text.Contains("time") || text.Contains("ساعت چنده")) { PersianDateTime time = PersianDateTime.Now; string h = time.Hour.ToString(); string m = time.Minute.ToString(); string s = time.Second.ToString(); string hms = (h + ":" + m + ":" + s); string date = time.ToString("dddd d MMMM yyyy ساعت "); string t = (date + hms); if (update.Message.From.Username != "infeXno") { var req = new SendMessage(update.Message.Chat.Id, t); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } else { var req = new SendMessage(update.Message.Chat.Id, "ددی امروز " + t + " هستش ♥ "); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } continue; } else if (text == "/hava" || text == "/hava@petshibot") { string s = "با این دستور میتونم وضعیت آب و هوا رو بهت بگم این شکلی میتونی استفاده کنی : \n /hava 'نام شهر'"; var req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); continue; } else if (text.Contains("/hava")) { string s1 = text; char[] ch = new char[] { ' ' }; string[] result; result = s1.Split(ch, 2); string location = result[1]; WebClient n = new WebClient(); var json = n.DownloadString("http://api.apixu.com/v1/current.json?key=1c5183723cba412ab6a102839182910&q=" + location); weather w1 = JsonConvert.DeserializeObject<weather>(json); string temp = Convert.ToString(Convert.ToInt32(w1.current.temp_c)); string stat = w1.current.condition.text; switch (w1.current.condition.code) { case 1000: string s = "امروز اونجا " + temp + " درجست و هوا صاف هستش ^^"; var req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1003: s = "امروز اونجا " + temp + " درجست و هوا نیمه ابری هستش ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1006: s = "امروز اونجا " + temp + " درجست و هوا ابری هستش ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1009: s = "امروز اونجا " + temp + " درجست و هوا کاملا ابری هستش ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1030: s = "امروز اونجا " + temp + " درجست و هوا مرطوبه ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1135: s = "امروز اونجا " + temp + " درجست و هوا مه آلود هستش ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1183: s = "امروز اونجا " + temp + " درجست و یکم بارون میاد ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1186: s = "امروز اونجا " + temp + " درجست و بعضی وقتا بارون میاد ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1189: s = "امروز اونجا " + temp + " درجست و یه مقدار بارون داریم ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1192: s = "امروز اونجا " + temp + " درجست و بارون زیادی داریم ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; case 1195: s = "امروز اونجا " + temp + " درجست و بارون زیادی داریم ^^"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; default: s = "امروز اونجا " + temp + "درجست و " +stat + " هستش"; req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); break; } continue; } else if (text == "/mani" || text == "/mani@petshibot") { string s = "با این دستور میتونم معنی هر کلمه ای رو بهت بگم ^^ این شکلی میتونی استفاده کنی : \n /mani 'کلمه'"; var req = new SendMessage(update.Message.Chat.Id, s); req.ReplyToMessageId = (update.Message.MessageId); await bot.MakeRequestAsync(req); continue; } else if (text.Contains("/mani")) { string s1 = text; char[] ch = new char[] { ' ' }; string[] result; result = s1.Split(ch, 2); string kalame = result[1]; WebClient n = new WebClient(); var json = n.DownloadString("http://api.urbandictionary.com/v0/define?term=" + kalame); mani m1 = JsonConvert.DeserializeObject<mani>(json); if (m1.list.Length > 0) { string man = m1.list[0].definition + "\n\n Examples : \n" + m1.list[0].example; string edit = man.Replace("[", ""); string edit1 = edit.Replace("]", ""); string edit2 = edit1.Replace("’", ""); var req = new SendMessage(update.Message.Chat.Id, edit2); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } else { string man = "معنی این کلمه رو نتونستم پیدا کنم :("; var req = new SendMessage(update.Message.Chat.Id, man); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } continue; } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////SEND MY MESSAGE COMMAND PART///////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// ///////SEND MESSAGE FROM COMMAND CENTER///////// else if (update.Message.From.Username == "infeXno" && update.Message.Chat.Id == -224286003) { string s1 = text; char[] ch = new char[] { ' ' }; string[] result; result = s1.Split(ch, 2); long target = Convert.ToInt64(result[0]); string str = result[1]; var req = new SendMessage(target, str); //my messages goes here ! await bot.MakeRequestAsync(req); continue; } //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //////////////////////////PRIVATE PART///////////////////////////// //recieve privates //and answer them else if (update.Message.Chat.Type == "private") { var req = new SendMessage(-224286003, update.Message.Chat.Id + ""); await bot.MakeRequestAsync(req); var forw = new ForwardMessage(-224286003, update.Message.Chat.Id, update.Message.MessageId); await bot.MakeRequestAsync(forw); //////////////////////KNOWN PEOPLE////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// ////////////////REGULAR GROUP SETTINGS////////////////////// else if (update.Message.Chat.Type == "supergroup" || update.Message.Chat.Type == "group") { if (update.Message.From.Id == 226349493) /////this is ME { if (text.Contains("دختر") || text.Contains("ربات")) { string[] asd = new string[] { " یس ددی", "ددیم ♥", " ♥:))" }; Random rnd = new Random(); int rand = rnd.Next(0, 2); var jvb = new SendMessage(update.Message.Chat.Id, asd[rand]); jvb.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(jvb); } else if (text.Contains("/off")) { var req = new SendMessage(update.Message.Chat.Id, "ربات خاموش شد."); await bot.MakeRequestAsync(req); job = 0; } else if (text.Contains("/on")) { var req = new SendMessage(update.Message.Chat.Id, "اماده خدمت :)"); await bot.MakeRequestAsync(req); job = 1; } else if (update.Message.ReplyToMessage.From.Id == 373634438) { string[] asd = new string[] { "لاو یو ددی", ":* بوچ بوچ", "^^", "+__+" }; Random rnd = new Random(); int rand = rnd.Next(0, 3); var jvb = new SendMessage(update.Message.Chat.Id, asd[rand]); jvb.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(jvb); } else if (update.Message.ReplyToMessage.From.Id == 373634438 && text.Contains("salam") || text.Contains("سلم") || text.Contains("سلام") || text.Contains("slm")) { string[] asd = new string[] { " های ددی", " سلام ددیمون", " :))", "سلام ددی ♥ :))" }; Random rnd = new Random(); int rand = rnd.Next(0, 3); var req = new SendMessage(update.Message.Chat.Id, asd[rand]); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } } else if (text.Contains("ربات")) { string[] asd = new string[] { "؟؟", "چیه ", " بله" }; Random rnd = new Random(); int rand = rnd.Next(0, 2); var jvb = new SendMessage(update.Message.Chat.Id, asd[rand]); jvb.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(jvb); } else if (update.Message.From.Username != "infeXno" && text.Contains("خوب") || text.Contains("بد") || text.Contains("اره")) { if (update.Message.ReplyToMessage.From.Id == 373634438) { string[] asd = new string[] { " خوبه", " خدارو شکر", " :))" }; Random rnd = new Random(); int rand = rnd.Next(0, 5); if (rand <= 2) { var jvb = new SendMessage(update.Message.Chat.Id, asd[rand]); jvb.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(jvb); } } } else if (update.Message.ReplyToMessage.From.Id == 373634438 && text.Contains("salam") || text.Contains("سلم") || text.Contains("سلام") || text.Contains("slm")) { string[] asd = new string[] { " سلام", " سلام :))", "های" }; Random rnd = new Random(); int rand = rnd.Next(0, 2); var req = new SendMessage(update.Message.Chat.Id, asd[rand]); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); continue; } } } } catch (WebException) { foreach (var update in updates) { var req = new SendMessage(update.Message.Chat.Id, "پیدا نکردم :("); req.ReplyToMessageId = update.Message.MessageId; await bot.MakeRequestAsync(req); } } catch (Exception) { continue; } } }
public static ValidationResult <ForwardMessage> CreateValidation(this ForwardMessage value) => new ValidationResult <ForwardMessage>(value).ValidateRequired(x => x.ChatId) .ValidateRequired(x => x.FromChatId) .ValidateRequired(x => x.MessageId);
public async Task <Message> SendForwardMessageAsync(ForwardMessage message, CancellationToken cancellationToken) { return(await SendPostRequest <Message>("forwardMessage", HttpContentBuilder.BuildJsonContent(message), cancellationToken)); }
protected override void Execute(CodeActivityContext context) { MailMessage forwardMail = MailMessage.Get(context); if (forwardMail != null) { string html = ExportMailToHtml(forwardMail); string strHeader = "<p>"; string fMessage = ForwardMessage.Get(context); if (!string.IsNullOrEmpty(fMessage)) { fMessage = TextToHtml(fMessage); Console.WriteLine(fMessage); strHeader = fMessage + "<br>"; } if (ShowOriginalMessage) { strHeader = strHeader + "<br><br>" + "-----Original Message-----" + "<br>"; strHeader += "From: " + forwardMail.From.DisplayName + "<br>"; strHeader += "Sent: " + forwardMail.Headers["Date"] + "<br>"; strHeader += "To: " + forwardMail.To + "<br>"; strHeader += "Subject: " + forwardMail.Subject + "<br><br>"; } forwardMail.Subject = "FW: " + forwardMail.Subject; forwardMail.IsBodyHtml = true; forwardMail.Body = strHeader + GetTrimmedBodyText(html) + "</p>"; string to = To.Get(context); if (!string.IsNullOrEmpty(to)) { to = to.Replace(",", ";"); var toSplits = to.Split(';'); foreach (var t in toSplits) { forwardMail.To.Add(new MailAddress(t)); } } string cc = CC.Get(context); if (!string.IsNullOrEmpty(cc)) { cc = cc.Replace(",", ";"); var ccSplits = cc.Split(';'); foreach (var cs in ccSplits) { forwardMail.CC.Add(new MailAddress(cs)); } } string bcc = BCC.Get(context); if (!string.IsNullOrEmpty(bcc)) { bcc = bcc.Replace(",", ";"); var bccSplits = bcc.Split(';'); foreach (var b in bccSplits) { forwardMail.Bcc.Add(new MailAddress(b)); } } this.ForwardMail.Set(context, forwardMail); } else { Console.WriteLine("No Mail Message Found"); } }
/// <summary> /// Отправляет сообщение с пересылаемыми документами /// </summary> /// <param name="message">Сообщение с пересылаемыми документами</param> /// <returns>Отправленное сообщение</returns> public SentMessage SendForwardMessage(ForwardMessage message) { return(CheckAutorizedInvoke(() => client.SendForwardMessage(Token, message))); }
private static async Task RunBot() { try { var bot = new TelegramBot(BotToken); var me = await bot.MakeRequestAsync(new GetMe()); var db = new MaterialtelegramBotdbEntities(); long offset = 0; var whatDo = 0; const long adminId = 87310097; while (true) { var updates = await bot.MakeRequestAsync(new GetUpdates() { Offset = offset }); foreach (var item in updates) { try { var qGetBotUser = (from a in db.Users where a.UserID.Equals(item.Message.Chat.Id) select a).SingleOrDefault(); if (qGetBotUser == null) { var botUser = new User { UserID = item.Message.Chat.Id, FirstName = item.Message.Chat.FirstName, LastName = item.Message.Chat.LastName, UserName = item.Message.Chat.Username }; db.Users.Add(botUser); db.SaveChanges(); } offset = item.UpdateId + 1; var id = item.Message.Chat.Id; var userText = item.Message.Text; var from = item.Message.From; var photos = item.Message.Photo; var contact = item.Message.Contact; var location = item.Message.Location; var queryBack = item.CallbackQuery; var qGet = (from a in db.Settings where a.Id.Equals(1) select a).SingleOrDefault(); var checkUser = new GetChatMember(qGet.Channel ?? 0, id); var isUser = await bot.MakeRequestAsync(checkUser); var isBotLock = false; var isUserHasAccess = false; if (qGet.Channel != null) { isBotLock = true; if (isUser.Status == "administrator" || isUser.Status == "member" || isUser.Status == "creator") { isUserHasAccess = true; } } if (item.Message.Chat.Id == adminId) { mainMenu = new ReplyKeyboardMarkup { Keyboard = new[] { new[] { new KeyboardButton("\U000000A9 درباره \U000000A9"), new KeyboardButton("\U00002753 راهنما \U00002753") }, new[] { new KeyboardButton("تنظیمات مدیر \U0001F3E0") } }, ResizeKeyboard = true }; } else { mainMenu = new ReplyKeyboardMarkup { Keyboard = new[] { new[] { new KeyboardButton("\U000000A9 درباره \U000000A9"), new KeyboardButton("\U00002753 راهنما \U00002753") }, new[] { new KeyboardButton("\U0001F4DE تماس با ما \U0001F4DE") }, }, ResizeKeyboard = true }; } if ((isBotLock && isUserHasAccess) || (isBotLock == false)) { if (whatDo == 0) { switch (userText) { case "/start": var req = new SendMessage(item.Message.Chat.Id, "به ربات پیام رسان خوش آمدید") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req); break; //************************************ case string a when a.Contains("خانه"): req = new SendMessage(item.Message.Chat.Id, "خانه ربات") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req); break; //************************************ case string a when a.Contains("تنظیمات مدیر"): req = new SendMessage(item.Message.Chat.Id, "در این بخش می توانید تنظیمات خود را اعمال کنید") { ReplyMarkup = AdminMenu }; await bot.MakeRequestAsync(req); break; //************************************ case string a when a.Contains("درباره"): req = new SendMessage(item.Message.Chat.Id, "ربات سایت آی ترفند") { ReplyMarkup = BackToMain }; await bot.MakeRequestAsync(req); break; //************************************ case string a when a.Contains("راهنما"): req = new SendMessage(item.Message.Chat.Id, "این روبات برای سایت آی ترفند می باشد \n" + " توسط آن می توانید کارهای محتلفی انجام بدهید") { ReplyMarkup = BackToMain }; await bot.MakeRequestAsync(req); break; //************************************ case string a when a.Contains("ربات قفل دار"): if (item.Message.Chat.Id == adminId) { req = new SendMessage(item.Message.Chat.Id, "لطفا آدرس کانالی که میخواهید کاربر در صورت عضو بود در آن بتواند از ربات استفاده کند را به همراه @ مانند @itarfand وارد کنید" + "\n\nاگر نمی خواهید کلمه *نه* را وارد کنید") { ReplyMarkup = AdminMenu, ParseMode = SendMessage.ParseModeEnum.Markdown }; await bot.MakeRequestAsync(req); whatDo = 11; } else { req = new SendMessage(item.Message.Chat.Id, "شما مدیر نیستید") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req); } break; //************************************ case string a when a.Contains("تماس با ما"): req = new SendMessage(item.Message.Chat.Id, "لطفا پیغام خود را بفرستید. در اسرع وقت پاسخ داده خواهد شد" + "\nنکته: پیغام خود را فقط در این پست بفرستید"); await bot.MakeRequestAsync(req); whatDo = 12; break; //************************************ case string a when a.Contains("پاسخ به پیغام ها"): if (item.Message.Chat.Id == adminId) { req = new SendMessage(item.Message.Chat.Id, "لطفا بر روی پیغام مورد نظر راست کلیک کنید و reply را انتخاب کرده و پیغام خود را بنویسید"); await bot.MakeRequestAsync(req); whatDo = 20; } else { req = new SendMessage(item.Message.Chat.Id, "شما مدیر نیستید") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req); } break; } } else { if (whatDo == 11) { var requserText = new SendMessage(item.Message.Chat.Id, userText) { ReplyMarkup = AdminMenu }; await bot.MakeRequestAsync(requserText); try { var qGetLock = (from a in db.Settings where a.Id.Equals(1) select a).SingleOrDefault(); if (userText.Equals("نه")) { qGetLock.Channel = 1235; } else { qGetLock.Channel = Convert.ToInt64(userText); } db.Settings.Attach(qGetLock); db.Entry(qGetLock).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } catch (Exception) { var req = new SendMessage(item.Message.Chat.Id, "خطا") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req); continue; } whatDo = 0; } else if (whatDo == 12) { //var requserText = new SendMessage(adminId, from + userText) { ReplyMarkup = mainMenu, ParseMode = SendMessage.ParseModeEnum.Markdown }; var fileId = item.Message.MessageId; var fromUser = item.Message.From.Id; var req2 = new ForwardMessage(adminId, fromUser, fileId); //await bot.MakeRequestAsync(requserText); await bot.MakeRequestAsync(req2); whatDo = 0; } else if (whatDo == 20) { if (item.Message.ReplyToMessage?.Text != null) { var toUser = item.Message.ReplyToMessage.ForwardFrom.Id; var req2 = new SendMessage(toUser, item.Message.Text); await bot.MakeRequestAsync(req2); } whatDo = 0; } else { var req3 = new SendMessage(item.Message.Chat.Id, "لطفا ابزار مورد نظر خود را انتخاب کنید") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req3); } } } else { var req = new SendMessage(item.Message.Chat.Id, "برای استفاده از این ربات ابتدا باید در کانال @itarfand عضو شوید"); await bot.MakeRequestAsync(req); } } catch (Exception) { var req = new SendMessage(item.Message.Chat.Id, "خطا") { ReplyMarkup = mainMenu }; await bot.MakeRequestAsync(req); whatDo = 0; break; } } } } catch (Exception e) { Console.WriteLine(e); throw; } // ReSharper disable once FunctionNeverReturns }
protected override void HandleForwardMessage(ForwardMessage message) { throw new InvalidOperationException("Cannot forward through nonexistent contracts!"); }
private void ProcessRecieveData(byte[] data) { //NGLogger.LogInfo("Receive a message"); Stream stream = new MemoryStream(data); ReceiveMessage message = ReadMessage <ReceiveMessage>(stream); switch (message.ReceiveMsgType) { case ReceiveMessageType.ResponseSocketStatus: switch (message.RssMsg.SStatus) { case SocketStatus.Connected: NGNetwork.Status = SocketStatus.Connected; NGNetworkEvent.OnConnected(); break; } break; case ReceiveMessageType.ResponseOperation: ResponseOperationMessage rmsg = message.RoMsg; NGInterface.CurrentRoom().ResponseProcessor(rmsg); break; case ReceiveMessageType.Forward: ForwardMessage fmsg = message.FMsg; uint peerId = fmsg.PeerId; switch (fmsg.MsgType) { case MessageType.JoinRoom: var jrParams = fmsg.JrfParams; NGPlayer newplayer = new NGPlayer(false, peerId); NGInterface.CurrentRoom().AddPlayer(newplayer); NGEvent.OnOtherPlayerEnteredRoom(newplayer); break; case MessageType.JoinOrCreateRoom: var jocParams = fmsg.JocrfParams; NGPlayer player = new NGPlayer(false, peerId); NGInterface.CurrentRoom().AddPlayer(player); NGEvent.OnOtherPlayerEnteredRoom(player); break; case MessageType.LeaveRoom: var lParams = fmsg.LrfParams; NGLogger.LogDebug("LeaveRoom" + peerId); var leaveplayer = NGInterface.CurrentRoom().GetNGPlayer(peerId); NGEvent.OnOtherPlayerLeftRoom(leaveplayer); Destroy(leaveplayer.GO); NGInterface.CurrentRoom().RemovePlayer(peerId); break; case MessageType.Rpc: var rpcparams = fmsg.RfParams; NGAny[] objs = NGProtobufConverter <NGAny> .RepeatedField2Array(rpcparams.Parameters); NGRPC.ExcuteRPC(rpcparams.ViewID, rpcparams.MethodName, objs); break; case MessageType.Instantiation: var i = fmsg.IfParams; var ids = NGProtobufConverter <uint> .RepeatedField2Array(i.ViewIDs); NGInterface.CurrentRoom().Instantiate(peerId, false, ids, i.PrefabName, i.Position, i.Rotation); break; case MessageType.ViewSync: var viewsyncparams = fmsg.VsfParams; var viewParams = viewsyncparams.VsdParams; NGViewContainer container = new NGViewContainer(); container.DeserializeAll(viewParams); break; case MessageType.CustomEvent: var ceParams = fmsg.CeParams; NGEvent.OnCustomEvent(ceParams.EventID, NGProtobufConverter <NGAny> .RepeatedField2Array(ceParams.CustomData)); break; } break; } }
public async Task <Message> SendForwardMessageAsync(ForwardMessage message) { return(await SendForwardMessageAsync(message, CancellationToken.None)); }