Example #1
0
        public IHttpActionResult Post([FromBody] Activity activity)
        {
            if (string.IsNullOrEmpty(activity.Text))
            {
                return(NotFound());
            }

            string reply = "";

            if (activity.Type == ActivityTypes.Message)
            {
                // calculate something for us to return
                int length     = (activity.Text ?? string.Empty).Length;
                var keyPhrases = TextAnalytics.GetKeyPhrases(activity.Text, activity.Id);

                //MessageDB.MessagesList.Add(message);
                var keys = _keyWords_manager.FindKeyWords(activity.Text, _question_manager.CurrentTopic);
                if (keys.Count == 0)
                {
                    var topic = _keyWords_manager.RecognizeTopic(activity.Text);
                    if (topic != Topic.None)
                    {
                        reply = _question_manager.GetQuestion(topic);
                    }
                }
                _question_manager.AllowToNextQuestion = keys.Count > 0;
                if (String.IsNullOrEmpty(reply))
                {
                    if (_question_manager.CurrentTopic == Topic.Experience)
                    {
                        if (_question_manager.CurrentTopic == Topic.Experience)
                        {
                            string txt = "";
                            foreach (var key in keyPhrases.Result.documents)
                            {
                                txt += key + ", ";
                            }
                            txt += " seems cool!";
                        }
                    }
                    reply = _question_manager.GetQuestion();
                }

                // connector.Conversations.ReplyToActivityAsync(reply);
            }
            else
            {
                HandleSystemMessage(activity);
            }
            //var response = Request.CreateResponse(HttpStatusCode.OK);
            //response.Content =
            //return response;
            return(Ok(reply));
        }
        public async Task <IActionResult> GetCommentsAnalyse([FromRoute] Guid eventId)
        {
            var model = new List <CommentAnalyticsDTO>();

            var comments = await _commentRepo.Comments(eventId);

            if (!comments.IsNullOrEmpty())
            {
                var inputs = new List <Input>();
                foreach (var comment in comments)
                {
                    inputs.Add(new Input()
                    {
                        Id   = comment.Id.ToString(),
                        Text = comment.Content
                    });
                    model.Add(new CommentAnalyticsDTO()
                    {
                        CommentId = comment.Id,
                        Content   = comment.Content,
                        CreatedAt = comment.CreatedAt
                    });
                }

                TextAnalytics _textAnalytics = new TextAnalytics();

                var multiLanguageInputs = new List <MultiLanguageInput>();
                var languageResult      = _textAnalytics.DetectLanguage(inputs);
                if (languageResult != null)
                {
                    for (int i = 0; i < languageResult.Documents.Count; i++)
                    {
                        foreach (var item in model)
                        {
                            if (item.CommentId.ToString() == languageResult.Documents[i].Id)
                            {
                                item.Language     = languageResult.Documents[i].DetectedLanguages[0].Name;
                                item.LanguageCode = languageResult.Documents[i].DetectedLanguages[0].Iso6391Name;
                            }
                        }

                        multiLanguageInputs.Add(new MultiLanguageInput()
                        {
                            Id       = model[i].CommentId.ToString(),
                            Language = model[i].LanguageCode,
                            Text     = model[i].Content
                        });
                    }

                    var keyPhrases = _textAnalytics.GetKeyPhrases(multiLanguageInputs);
                    if (keyPhrases != null)
                    {
                        for (int i = 0; i < keyPhrases.Documents.Count; i++)
                        {
                            foreach (var item in model)
                            {
                                if (item.CommentId.ToString() == keyPhrases.Documents[i].Id)
                                {
                                    item.KeyPhrases = keyPhrases.Documents[i].KeyPhrases.ToList();
                                }
                            }
                        }
                    }

                    var sentimentResult = _textAnalytics.GetSentiment(multiLanguageInputs);
                    if (sentimentResult != null)
                    {
                        for (int i = 0; i < sentimentResult.Documents.Count; i++)
                        {
                            foreach (var item in model)
                            {
                                if (item.CommentId.ToString() == sentimentResult.Documents[i].Id)
                                {
                                    item.Sentiment = sentimentResult.Documents[i].Score.ToString();
                                }
                            }
                        }
                    }
                }
            }

            return(Ok(model));
        }