Esempio n. 1
0
 protected override void HandleForwardMessage(ForwardMessage message)
 {
     try
     {
         this.ForwardMessage(message.ForwardId);
     }
     catch (Exception)
     {
         // Silently consume
     }
 }
Esempio n. 2
0
        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));
        }
Esempio n. 5
0
        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();
        }
Esempio n. 7
0
        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));
                }
            }
        }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 10
0
        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);
            }
        }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
        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);
Esempio n. 14
0
 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");
            }
        }
Esempio n. 16
0
 /// <summary>
 /// Отправляет сообщение с пересылаемыми документами
 /// </summary>
 /// <param name="message">Сообщение с пересылаемыми документами</param>
 /// <returns>Отправленное сообщение</returns>
 public SentMessage SendForwardMessage(ForwardMessage message)
 {
     return(CheckAutorizedInvoke(() => client.SendForwardMessage(Token, message)));
 }
Esempio n. 17
0
        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
        }
Esempio n. 18
0
 protected override void HandleForwardMessage(ForwardMessage message)
 {
     throw new InvalidOperationException("Cannot forward through nonexistent contracts!");
 }
Esempio n. 19
0
        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;
            }
        }
Esempio n. 20
0
 public async Task <Message> SendForwardMessageAsync(ForwardMessage message)
 {
     return(await SendForwardMessageAsync(message, CancellationToken.None));
 }