Beispiel #1
0
        public IHttpActionResult PostMessage(MessageNew message)
        {
            if (message.Description.Trim().Length < 0 || message.Receivers.Count < 0)
            {
                return(BadRequest());
            }

            var userId      = RequestContext.Principal.Identity.GetUserId();
            var description = message.Description;

            for (var i = 0; i < message.Receivers.Count; i++)
            {
                db.Messages.Add(new Message
                {
                    Description = description,
                    Time        = DateTime.Now,
                    SenderID    = userId,
                    IsRead      = false,
                    IsDeleted   = false,
                    ReceiverID  = message.Receivers.ElementAt(i)
                });
            }

            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { success = true }, message));
        }
Beispiel #2
0
        public ICommand CreateCommand(MessageNew messageNew)
        {
            var      message = messageNew.Message;
            ICommand command;

            switch (message.Text.Split()[0])
            {
            case ZoomLinkCommand.CommandStart:
                command = new ZoomLinkCommand(message, _sender);
                break;

            case TimetableCommand.CommandStart:
                command = new TimetableCommand(message, _sender);
                break;

            default:
                command = new EmptyMessageCommand(message, _sender);
                break;
            }

            if (GetNeedKeyboard(command) && !messageNew.ClientInfo.InlineKeyboard)
            {
                var sb = new StringBuilder();
                sb.AppendLine("Your client not support inline keyboard!");
                sb.AppendLine("Please use TG bot: https://t.me/leti_group_0310_bot");
                return(new ErrorMessageCommand(message, _sender, sb.ToString()));
            }
            return(command);
        }
        public async Task <IActionResult> CallBack([FromBody] Updates updates)
        {
            switch (updates.Type)
            {
            case "confirmation":
                return(Ok(Cfg["ConfirmCode"]));

            case "message_new":
                var message = MessageNew.FromJson(new VkResponse(updates.Object)).Message;

                if (message.Text == "/start")
                {
                    await VkHelper.SendMsg(message.PeerId, "Сова инициализирована.", VkHelper.DefaultKeyboard);
                }

                if (string.IsNullOrEmpty(message.Payload))
                {
                    return(Ok("ok"));
                }

                var    payload = (string)JObject.Parse(message.Payload)["button"] ?? string.Empty;
                string week;

                switch (payload)
                {
                case "lessons_today":
                    week = await Parser.ParseWeek(0);

                    await VkHelper.SendMsg(message.PeerId, week.ExtractDay((byte)DateTime.Now.Day));

                    break;

                case "lessons_current":
                    week = await Parser.ParseWeek(0);

                    await VkHelper.SendMsg(message.PeerId, week);

                    break;

                case "lessons_next":
                    week = await Parser.ParseWeek(1);

                    await VkHelper.SendMsg(message.PeerId, week);

                    break;

                case "lessons_all":

                    week = await Parser.ParseAll();

                    await VkHelper.SendMsg(message.PeerId, week);

                    break;
                }
                break;
            }
            return(Ok("ok"));
        }
        private async void DetectTypeEvent(Updates updates)
        {
            foreach (var update in updates.updates)
            {
                int codeTypeEvent = Convert.ToInt32(update[0]);

                if (codeTypeEvent == 61)
                {
                    //MessageBox.Show("Петрович набирает сообщение");
                }

                //4,$message_id,$flags,$from_id,$timestamp,$subject,$text,$attachments
                if (codeTypeEvent == 4)
                {
                    //получаем новые сообщения
                    LongPullMessageModel longPullMessageModel = await _vkApi.Messages.GetLongPollHistoryAsynk(ts, pts);

                    var message = new MessageNew
                    {
                        TypeEvent = Convert.ToInt32(update[0]),
                        MessageId = Convert.ToInt32(update[1]),
                        Flags     = Convert.ToInt32(update[2]),
                        FromId    = Convert.ToInt32(update[3]),
                        Timestamp = Convert.ToInt32(update[4]),
                        Subject   = Convert.ToString(update[5]),
                        Text      = Convert.ToString(update[6])
                    };

                    NewMessageWindow newMessage = new NewMessageWindow(longPullMessageModel);
                    newMessage.Show();

                    if (NewMessage != null)
                    {
                        NewMessage(longPullMessageModel);
                    }
                }
            }
        }
Beispiel #5
0
        public void AnonMethods()
        {
            // anon methods used for creation of delegate exemplars
            MessageNew handler = delegate(string s)
            {
                Console.WriteLine(s);
            };

            // has access to outside var-s
            int    i   = 5;
            AddNew add = delegate(int x, int y)
            {
                return(x + y + i);
            };

            //var del = delegate (string s) -> can not assign delegate to implicitly typed variable - ERROR
            //{
            //    Console.WriteLine(s);
            //};

            // anon method can be passed as a param:
            Messaging("hello", delegate(string s) { Console.WriteLine(s); });
        }
 public MessageContext(MessageNew rawMessage)
 {
     Body       = rawMessage.Message;
     ClientInfo = rawMessage.ClientInfo;
 }
Beispiel #7
0
 private void Messaging(string s, MessageNew del)
 {
     del(s);
 }
Beispiel #8
0
 public MessageToProcess(IVkApi botClient, MessageNew message)
 {
     BotClient = botClient;
     Message   = message;
 }