예제 #1
0
        public async Task Sugestao(IDialogContext context, LuisResult result)
        {
            var      entity   = result?.Entities?.Where(x => x.Type == "categoria").FirstOrDefault()?.Entity?.ToString();
            Category category = Category.anyway;

            if (!String.IsNullOrEmpty(entity))
            {
                category = (Category)Enum.Parse(typeof(Category), entity);
            }

            var movieService = new TheMovieDBService();

            if (botMovieTipsService == null)
            {
                botMovieTipsService = new BotMovieTipsService();
            }

            await botMovieTipsService.ConfigureAuthentication();

            var favoriteMedias = await botMovieTipsService.GetFavoriteMedias(userId);

            if (favoriteMedias.Count == 0)
            {
                await context.PostAsync($@"Aaah, ainda não te conheço o suficiente para conseguir te indicar um filme que vc goste!  ¯\_(⊙︿⊙)_/¯");

                await context.PostAsync($@"Você pode me pedir criticas sobre filmes / serie e falar quais você gosta pra eu aprender mais sobre você S2");

                return;
            }

            int random = new Random().Next(favoriteMedias.Count);
            var favoriteMediaChoiced = favoriteMedias[random];
            var mediasRecommendated  = await movieService.GetRecommendation(favoriteMediaChoiced.IdMedia, EnumExtensions.GetDescription(category));

            var msg = context.MakeMessage();

            msg.AttachmentLayout = AttachmentLayoutTypes.Carousel;
            foreach (var media in mediasRecommendated)
            {
                var card = new CardPersonalizedService().CreateCard(media);
                msg.Attachments.Add(card.ToAttachment());
            }

            await context.PostAsync(msg);


            //Implementar Form @Migg
            //FormDialog<Form.Sugestao> sugestionForm = new FormDialog<Form.Sugestao>(new Form.Sugestao(), Form.Sugestao.BuildForm, FormOptions.PromptInStart);
            //context.Call(sugestionForm, SugestaoFormCompleteAsync);
        }
예제 #2
0
        public async Task Favoritos(IDialogContext context, LuisResult result)
        {
            var mediaId = result?.Entities?.Where(x => x.Type == "mediaId").FirstOrDefault()?.Entity?.ToString();

            if (!(String.IsNullOrEmpty(userId) && String.IsNullOrEmpty(mediaId)))
            {
                var favoriteMedia = new FavoriteMedia()
                {
                    IdUser         = userId,
                    IdMedia        = Convert.ToInt32(mediaId),
                    TransationDate = DateTime.Now
                };
                if (botMovieTipsService == null)
                {
                    botMovieTipsService = new BotMovieTipsService();
                }
                await botMovieTipsService.ConfigureAuthentication();

                await botMovieTipsService.SendFavoriteMedia(favoriteMedia);
            }
        }
예제 #3
0
 public BotflixDialog(string userId)
 {
     this.userId         = userId;
     botMovieTipsService = new BotMovieTipsService();
 }