private async Task <Activity> HandleConversationUpdate(Activity activity)
        {
            var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

            if (activity.MembersAdded != null && activity.MembersAdded.Any())
            {
                var tBot = new ChannelAccount
                {
                    Id   = WebApiApplication.TelegramBotId,
                    Name = WebApiApplication.TelegramBotName
                };
                var name = string.Empty;
                if (activity.MembersAdded != null && activity.MembersAdded.Any())
                {
                    name = activity.MembersAdded.First().Name;
                }

                var reply = activity.CreateReply();
                reply.From = tBot;

                if (!string.IsNullOrEmpty(name))
                {
                    reply.Text = $"@{name} ты вообще с какого посткода?";
                }
                else
                {
                    reply.Text = "А ты вообще с какого посткода?";
                }

                await connector.Conversations.SendToConversationAsync(reply);
            }
            else if (activity.MembersRemoved != null && activity.MembersRemoved.Any())
            {
                var tBot = new ChannelAccount
                {
                    Id   = WebApiApplication.TelegramBotId,
                    Name = WebApiApplication.TelegramBotName
                };

                var reply = activity.CreateReply();
                reply.From = tBot;

                var channelData = new JsonModels.ChannelData
                {
                    method     = "sendSticker",
                    parameters = new JsonModels.Parameters
                    {
                        sticker = "CAADAgADXgEAAhmGAwABgntLLoS0m94C"
                    }
                };
                reply.ChannelData = channelData;

                await connector.Conversations.SendToConversationAsync(reply);
            }

            return(null);
        }
示例#2
0
        public Activity CreateReplyActivity(Activity activity, bool replyToUser = false)
        {
            var reply = activity.CreateReply();

            if (!string.IsNullOrEmpty(Text))
            {
                var replyText = Text;

                if (replyToUser)
                {
                    var user = activity.From?.Name;
                    replyText = (!string.IsNullOrEmpty(user) ? $"@{user} {Text}" : $"{Text}");
                }

                reply.Text = replyText;
            }

            /* Uncomment me if Microsoft fixes Mention
             * if (!string.IsNullOrEmpty(Text))
             * {
             *  var replyText = Text;
             *
             *  if (replyToUser)
             *  {
             *      var entity = new Entity();
             *      entity.SetAs(new Mention
             *      {
             *          Text = replyText,
             *          Mentioned = new ChannelAccount
             *          {
             *              Name = activity.From?.Name,
             *              Id = activity.From?.Id
             *          }
             *      });
             *
             *      reply.Entities.Add(entity);
             *  }
             * }*/
            else if (!string.IsNullOrEmpty(Sticker))
            {
                var channelData = new JsonModels.ChannelData
                {
                    method     = "sendSticker",
                    parameters = new JsonModels.Parameters
                    {
                        sticker = Sticker
                    }
                };
                reply.ChannelData = channelData;
            }
            else
            {
                return(null);
            }

            return(reply);
        }