コード例 #1
0
        private async Task HandleNotificationMessages(Activity activity, ConnectorClient connector)

        {
            var toId           = activity.From.Id;
            var toName         = activity.From.Name;
            var fromId         = activity.Recipient.Id;
            var fromName       = activity.Recipient.Name;
            var serviceUrl     = activity.ServiceUrl;
            var channelId      = activity.ChannelId;
            var conversationId = activity.Conversation.Id;

            var      messageConversation = string.Concat("Activity: ", toId, " toName: " + toName + " fromID: " + fromId + " fromName:", fromName + " serviceurl: " + serviceUrl + " channelid:" + channelId + " conversation: " + conversationId);
            Activity reply = activity.CreateReply(messageConversation);


            var botUserRegisterDto = new BoutUserRegisterDto
            {
                Activity     = toId,
                ChannelId    = channelId,
                Conversation = conversationId,
                FromID       = fromId,
                FromName     = fromName,
                UserName     = toName,
                RegistryDate = DateTime.Now,
                ServiceUrl   = serviceUrl
            };

            var homeRestService = new HomeRestService();

            await homeRestService.RegisterBotUser(botUserRegisterDto);

            await connector.Conversations.ReplyToActivityAsync(reply);
        }
コード例 #2
0
        private async Task <string> executeSmsHomeAction(string actionToExecute)
        {
            HomeRestService homeRestService = new HomeRestService();

            var defaultResult = MessagesDialog.SmsActionNotUnderstanding;

            var result = await this.executeSmsHomeLightOnAction(actionToExecute, homeRestService);

            if (string.IsNullOrEmpty(result))
            {
                result = await this.executeSmsHomeLightOffAction(actionToExecute, homeRestService);
            }

            if (string.IsNullOrEmpty(result))
            {
                result = await this.executeSmsHomeBlindUpAction(actionToExecute, homeRestService);
            }

            if (string.IsNullOrEmpty(result))
            {
                result = await this.executeSmsHomeBlindDownAction(actionToExecute, homeRestService);
            }

            if (string.IsNullOrEmpty(result))
            {
                result = defaultResult;
            }

            return(result);
        }
コード例 #3
0
        public async Task ApagarDicho(IDialogContext context, LuisResult result)
        {
            HomeRestService homeRestService = new HomeRestService();
            await homeRestService.ExecuteAction(HomeRestService.lightOnAllAction);

            var message = "Todas las luces de la casa encendida";
            await context.PostAsync(message);

            context.Wait(MessageReceived);
        }
コード例 #4
0
        public async Task Temperatura(IDialogContext context, LuisResult result)
        {
            HomeRestService homeRestService = new HomeRestService();
            await homeRestService.ExecuteAction(HomeRestService.temperatureRequestAction);

            var typingMessage = context.MakeMessage();

            typingMessage.Type = ActivityTypes.Typing;
            await context.PostAsync(typingMessage);
        }
コード例 #5
0
        public async Task CarteroBuzon(IDialogContext context, LuisResult result)
        {
            var authorizeAction = "entregarpaquetecartero";

            HomeRestService homeRestService = new HomeRestService();
            await homeRestService.MakeAuthyRequest(new AuthyRequestDto
            {
                UserRequest  = context.Activity.From.Name,
                ActionToTake = authorizeAction,
                EMail        = "*****@*****.**"
            });

            await context.PostAsync(messageRequestAuthoration);

            context.Wait(MessageReceived);
        }
コード例 #6
0
        private async Task AfterUserHasChosenSubirPersianaOptionAsync(IDialogContext context, IAwaitable <string> result)
        {
            string message     = string.Empty;
            var    messageBody = string.Empty;

            string userChoice = await result;

            HomeRestService homeRestService = new HomeRestService();

            if (userChoice.ToLower() == "cocina")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindUpKitchenAction);

                message = "Persiana de la cocina subida";
            }

            if (userChoice.ToLower() == "habitacion")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindUpBedroomAction);

                message = "Persiana de la habitacion subida";
            }


            if (userChoice.ToLower() == "buzón")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindUpMailboxAction);

                message = "Persiana del buzón subida";
            }


            if (userChoice.ToLower() == "todas")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindUpAllAction);

                message = "Todas las ventanas subidas";
            }

            await context.PostAsync(message);

            context.Wait(MessageReceived);
        }
コード例 #7
0
        private async Task AfterUserHasChosenBajarPersianaOptionAsync(IDialogContext context, IAwaitable <string> result)
        {
            string message = string.Empty;

            HomeRestService homeRestService = new HomeRestService();

            string userChoice = await result;

            if (userChoice.ToLower() == "cocina")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownKitchenAction);

                message = "Persiana de la cocina bajada";
            }

            if (userChoice.ToLower() == "habitacion")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownBedroomAction);

                message = "Persiana de la habitacion bajada";
            }


            if (userChoice.ToLower() == "buzón")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownMailboxAction);

                message = "Persiana del buzón bajada";
            }


            if (userChoice.ToLower() == "todas")
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownAllAction);

                message = "Todas las persianas bajadas";
            }

            await context.PostAsync(message);

            context.Wait(MessageReceived);
        }
コード例 #8
0
        public async Task ApagarElementoCasa(IDialogContext context, LuisResult result)
        {
            context.PrivateConversationData.SetValue("laststep", "apagarelementocasa");

            var    entities = result.Entities.ToList();
            string message  = string.Empty;

            if (entities.Where(m => m.Type == "espacio").FirstOrDefault() != null)
            {
                HomeRestService homeRestService = new HomeRestService();

                var userCanPerformAction = homeRestService.CanUserPerformAction(context.Activity.From.Name);

                var entityEspacio = entities.Where(m => m.Type == "espacio").Select(n => n.Entity).FirstOrDefault();

                if (entityEspacio == "cocina")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.lightOffKitchenAction);

                        message = "Luz de la cocina apagada";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "apagarluzcocina",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }

                if (entityEspacio == "baño")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.lightOffBathRoomAction);

                        message = "Luz del baño apagagada";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "apagarluzbaño",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }

                if (entityEspacio == "recibidor")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.lightOffEntranceHallAction);

                        message = "Luz del recibidor apagada";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "apagarluzrecibidor",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }

                if (entityEspacio == "habitacion" || entityEspacio == "habitación")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.lightOffBedroomAction);

                        message = "Luz de la habitación apagada";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "apagarluzhabitacion",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }

                var activityMessage = context.MakeMessage();
                activityMessage.Type = ActivityTypes.Message;
                await context.PostAsync(message);
            }

            if (string.IsNullOrEmpty(message))
            {
                var dialog = new PromptDialog.PromptChoice <string>(houseSpaces, "Que parte de la casa quieres apagar", "Esta no es una opción válida", 2);
                context.Call(dialog, AfterUserHasChoiceLedLowOption);
            }
        }
コード例 #9
0
        public async Task SubirPersiana(IDialogContext context, LuisResult result)
        {
            context.PrivateConversationData.SetValue("laststep", "subirventana");

            string message  = string.Empty;
            var    entities = result.Entities.ToList();

            if (entities.Where(m => m.Type == "espacio").FirstOrDefault() != null)
            {
                HomeRestService homeRestService = new HomeRestService();

                var userCanPerformAction = homeRestService.CanUserPerformAction(context.Activity.From.Name);

                var entityEspacio = entities.Where(m => m.Type == "espacio").Select(n => n.Entity).FirstOrDefault();

                if (entityEspacio == "cocina")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.blindUpKitchenAction);

                        message = "Persiana de la cocina subida";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "subirpersianacocina",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }

                if (entityEspacio == "habitacion" || entityEspacio == "habitación")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.blindUpBedroomAction);

                        message = "Persiana de la habitación subida";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "subirpersianahabitacion",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }


                if (entityEspacio == "buzon" || entityEspacio == "buzón")
                {
                    if (userCanPerformAction)
                    {
                        await homeRestService.ExecuteAction(HomeRestService.blindUpMailboxAction);

                        message = "Persiana del buzón subida";
                    }
                    else
                    {
                        await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                        {
                            UserRequest  = context.Activity.From.Name,
                            ActionToTake = "subirpersianabuzon",
                            EMail        = "*****@*****.**"
                        });

                        message = messageRequestAuthoration;
                    }
                }

                var activityMessage = context.MakeMessage();
                activityMessage.Type = ActivityTypes.Message;
                await context.PostAsync(message);
            }
            else
            {
                var activity = context.MakeMessage();
                activity.Text = "¿De que parte de la casa quieres subir la persiana?";

                var dialog = new PromptDialog.PromptChoice <string>(new string[] { "Cocina", "Habitacion", "Buzón", "Todas" }, "¿De que parte de la casa quieres subir la persiana?", "Esta no es una opción válida", 2);
                context.Call(dialog, AfterUserHasChosenSubirPersianaOptionAsync);
            }
        }
コード例 #10
0
        private async Task AfterUserHasChoiceLedLowOption(IDialogContext context, IAwaitable <string> result)
        {
            var    message     = string.Empty;
            string userChoice  = await result;
            string messageBody = string.Empty;

            HomeRestService homeRestService = new HomeRestService();

            if (homeRestService.CanUserPerformAction(context.Activity.From.Name))
            {
                if (userChoice.ToLower() == "cocina")
                {
                    await homeRestService.ExecuteAction(HomeRestService.lightOffKitchenAction);

                    message = "Luz de la cocina apagada";
                }

                if (userChoice.ToLower() == "baño")
                {
                    await homeRestService.ExecuteAction(HomeRestService.lightOffBathRoomAction);

                    message = "Luz del baño apagada";
                }

                if (userChoice.ToLower() == "recibidor")
                {
                    await homeRestService.ExecuteAction(HomeRestService.lightOffEntranceHallAction);

                    message = "Luz del recibidor apagada";
                }

                if (userChoice.ToLower() == "habitacion")
                {
                    await homeRestService.ExecuteAction(HomeRestService.lightOffBedroomAction);

                    message = "Luz de la habitación apagada";
                }

                if (userChoice.ToLower() == "todas")
                {
                    await homeRestService.ExecuteAction(HomeRestService.lightOffAllAction);

                    message = "Todas las luces de la casa apagadas.";
                }
            }
            else
            {
                var authorizeAction = string.Empty;

                if (userChoice.ToLower() == "cocina")
                {
                    authorizeAction = "apagarluzcocina";
                }

                if (userChoice.ToLower() == "baño")
                {
                    authorizeAction = "apagarluzbaño";
                }

                if (userChoice.ToLower() == "recibidor")
                {
                    authorizeAction = "apagarluzrecibidor";
                }

                if (userChoice.ToLower() == "habitacion")
                {
                    authorizeAction = "apagarluzrecibidor";
                }

                await homeRestService.MakeAuthyRequest(new AuthyRequestDto
                {
                    UserRequest  = context.Activity.From.Name,
                    ActionToTake = authorizeAction,
                    EMail        = "*****@*****.**"
                });

                message = "Hemos enviado una petición a Padre Bic para que autorice esta acción";
                var typingMessage = context.MakeMessage();
                typingMessage.Type = ActivityTypes.Typing;
                await context.PostAsync(typingMessage);
            }

            await context.PostAsync(message);

            context.Wait(MessageReceived);
        }
コード例 #11
0
ファイル: IVRBot.cs プロジェクト: agarciamiravet/bicbot
        private async Task <string> takeAction(string text)
        {
            var result      = string.Empty;
            var luisService = new LuisService();
            var resultado   = await luisService.MakeRequest(text);

            // encender

            if (resultado == "encendercocina")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOnKitchenAction);

                return("Luz de la cocina encendida");
            }

            if (resultado == "encenderbaño")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOnBathRoomAction);

                return("Luz del baño encendida");
            }

            if (resultado == "encenderrecibidor")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOnEntranceHallAction);

                return("Luz del recibidor encendida");
            }

            if (resultado == "encenderhabitacion")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOnBedroomAction);

                return("Luz de la habitación encendida");
            }

            //apagar

            if (resultado == "apagarcocina")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOffKitchenAction);

                return("Luz de la cocina apagada");
            }

            if (resultado == "apagarbaño")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOffBathRoomAction);

                return("Luz del baño apagada");
            }

            if (resultado == "apagarrecibidor")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOffEntranceHallAction);

                return("Luz del recibidor apagada");
            }

            if (resultado == "apagarhabitacion")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOffBedroomAction);

                return("Luz de la habitación apagada");
            }

            if (resultado == "apagartodo")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOffAllAction);

                return("Apagadas todas las luces de la casa");
            }

            // bajar persiana

            if (resultado == "bajarpersianacocina")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.blindDownKitchenAction);

                return("Bajada la persiana de la cocina");
            }

            if (resultado == "bajarpersianahabitacion")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.blindDownBedroomAction);

                return("Bajada la persiana de la habitación");
            }

            if (resultado == "bajarpersianabuzon")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.blindDownMailboxAction);

                return("Bajada la persiana del buzón");
            }


            // subir persiana

            if (resultado == "subirpersianacocina")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.blindUpKitchenAction);

                return("Subida la persiana de la cocina");
            }

            if (resultado == "subirpersianahabitacion")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.blindUpBedroomAction);

                return("Subida la persiana de la habitación");
            }

            if (resultado == "subirpersianabuzon")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.blindDownMailboxAction);

                return("Subida la persiana del buzón");
            }

            if (resultado == "carteropaquete")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.mailUserRequestAction);

                return("Por favor deposita el paquete en el buzón");
            }

            if (resultado == "encendertodo")
            {
                HomeRestService homeRestService = new HomeRestService();
                await homeRestService.ExecuteAction(HomeRestService.lightOnAllAction);

                return("Encendidas todas las luces de la casa");
            }


            return(resultado);
        }
コード例 #12
0
        private async Task <string> executeSmsHomeBlindDownAction(string actionToExecute, HomeRestService homeRestService)
        {
            string message = string.Empty;

            if (actionToExecute.ToLower() == SmsMessage.BlindDownHomme)
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownAllAction);

                message = MessagesDialog.BlindDownHomeAll;
            }

            if (actionToExecute.ToLower() == SmsMessage.BlindDownKitchen)
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownKitchenAction);

                message = MessagesDialog.BlindDownKitchen;
            }

            if (actionToExecute.ToLower() == SmsMessage.BlindDownMailBox)
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownMailboxAction);

                message = MessagesDialog.BlindDownMailbox;
            }

            if (actionToExecute.ToLower() == SmsMessage.BlindDownBedRoom ||
                actionToExecute.ToLower() == SmsMessage.BlindDownBedRoomAlternative)
            {
                await homeRestService.ExecuteAction(HomeRestService.blindDownBedroomAction);

                message = MessagesDialog.BlindDownBedroom;
            }

            return(message);
        }
コード例 #13
0
        private async Task <string> executeSmsHomeLightOffAction(string actionToExecute, HomeRestService homeRestService)
        {
            string message = string.Empty;

            if (actionToExecute.ToLower() == SmsMessage.LightOffHome)
            {
                await homeRestService.ExecuteAction(HomeRestService.lightOffAllAction);

                message = MessagesDialog.LightOffHomeMessage;
            }

            if (actionToExecute.ToLower() == SmsMessage.LightOffBathRoom)
            {
                await homeRestService.ExecuteAction(HomeRestService.lightOffBathRoomAction);

                message = MessagesDialog.LightOffBathroomMessage;
            }

            if (actionToExecute.ToLower() == SmsMessage.LightOffEntranceHall)
            {
                await homeRestService.ExecuteAction(HomeRestService.lightOffEntranceHallAction);

                message = MessagesDialog.LightOffEntranceHallMessage;
            }

            if (actionToExecute.ToLower() == SmsMessage.LightOffbedroom ||
                actionToExecute.ToLower() == SmsMessage.LightOffbedroomAlternative ||
                actionToExecute.ToLower() == SmsMessage.LightOffbedroomOtherAlternative)
            {
                await homeRestService.ExecuteAction(HomeRestService.lightOffBedroomAction);

                message = MessagesDialog.LightOnBathroomMessage;
            }

            if (actionToExecute.ToLower() == SmsMessage.LightOffKitchen)
            {
                await homeRestService.ExecuteAction(HomeRestService.lightOffKitchenAction);

                message = MessagesDialog.LightOffKitchenMessage;
            }

            return(message);
        }