예제 #1
0
        public async Task <ActionResult <List <int> > > RecommendMoviesIdByKeyword([FromHeader] string Authentification_Token, string keyword)
        {
            string response = null;

            try
            {
                client.DefaultRequestHeaders.Add("Authentification_Token", Authentification_Token);
                response = await client.GetStringAsync("http://localhost:5050/api/v2/users/verify_token");
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine("\nException Caught!");
                Console.WriteLine("Message :{0} ", e.Message);
            }
            if (response != null)
            {
                string filteredKeyword = FilteringOperations.FilterKeyword(keyword);
                Console.WriteLine("Filtered Keyword: " + filteredKeyword);
                List <int> moviesIdTag = _context.MovieWithTags.Where(x => x.Tag.Replace(" ", "").ToLower().Contains(filteredKeyword) || filteredKeyword.Contains(x.Tag.Replace(" ", "").ToLower()))
                                         .Select(x => x.MovieId)
                                         .ToList();
                List <int> moviesIdTitle = _context.Movies.Where(x => x.Title.Replace(" ", "").ToLower().Contains(filteredKeyword)).Select(x => x.Id).ToList();
                Console.WriteLine("moviesTag count : " + moviesIdTag.Count + " moviesTitle count : " + moviesIdTitle.Count);
                List <int> recommendations = SearchOperations.RecommendMoviesIdByKeyword(Convert.ToInt32(response), moviesIdTag, moviesIdTitle);
                if (recommendations.Count == 0)
                {
                    return(NoContent());
                }
                else
                {
                    return(recommendations);
                }
            }
            else
            {
                return(Unauthorized(new Error("Token has invalid signature or expired")));
            }
        }
예제 #2
0
        public void TestFilteredKeyword(string input, string expected)
        {
            string actual = FilteringOperations.FilterKeyword(input);

            Assert.Equal(actual, expected);
        }