public void DoesItWork()
        {
            var sut = new BotCommandParser();

            var result = sut.Parse("@CacheBot clearAll redis 12");
        }
Example #2
0
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> result)
        {
            var message = await result;
//            QueueManager.toId = message.From.Id; // If marrion sent the message this identifies him
//            QueueManager.toName = message.From.Name;
//            QueueManager.fromId = message.Recipient.Id;
//            QueueManager.fromName = message.Recipient.Name;
//            QueueManager.serviceUrl = message.ServiceUrl;
//            QueueManager.channelId = message.ChannelId;
//            QueueManager.conversationId = message.Conversation.Id;

            var activity = await result as Activity;

            var parser  = new BotCommandParser();
            var command = parser.Parse(activity.Text);

            if (command != null)
            {
                if (activity.Text.Contains("givemeids"))
                {
                    await context.PostAsync(
                        $@"toId: {message.From.Id}, 
                        ToName: {message.From.Name}
                        fromId: {message.Recipient.Id}
                        fromName: {message.Recipient.Name}
                        serviceUrl: {message.ServiceUrl}
                        channelId: {message.ChannelId}
                        conversationId: {message.Conversation.Id}");

                    context.Wait(MessageReceivedAsync);
                    return;
                }


                var connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
                if (connectionString == null)
                {
                    await context.PostAsync("Configuration is wrong");

                    context.Wait(MessageReceivedAsync);
                    return;
                }

                try
                {
                    var builder = new ServiceBusConnectionStringBuilder(connectionString)
                    {
                        EntityPath = "Requests"
                    };
                    var client = new QueueClient(builder);

                    var key = "[\"Phoenix.ProductModel.Provider.Queries.CategoryExpressionInfo\",\"Cards-Invitations/Announcements\"]";
                    if (activity.Text.Contains(key))
                    {
                        await client.SendAsync(new Message(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Command
                        {
                            CommandType = CommandType.GetValue,
                            Cache = CacheEnum.Redis,
                            DatabaseId = 12,
                            Key = key
                        }))));
                    }
                    else
                    {
                        var obj = JsonConvert.SerializeObject(command);
                        await client.SendAsync(new Message(Encoding.UTF8.GetBytes(obj)));
                    }
                    await context.PostAsync("Command sent! Will let you know how it goes.");
                }
                catch (Exception ex)
                {
                    await context.PostAsync($"Exception: {ex}. Stack trace: {ex.StackTrace}");

                    context.Wait(MessageReceivedAsync);
                    return;
                }
            }

            context.Wait(MessageReceivedAsync);
        }