예제 #1
0
        /// <summary>
        /// Pobiera 5 pierwszych (lub 6-10) frazy pasujące do słowa kluczowego.
        /// </summary>
        public GetPhrasesResponse GetPhrase(GetPhrasesRequest request)
        {
            var response = new GetPhrasesResponse();

            using (var ctx = new TypeFineContext())
            {
                //SaveInfo(request, ctx, RequestType.GetPhrase, true);

                var phrases = ctx.TheAlgorithm(request.Keyword).ToList();
                if (phrases.Count() == 1)
                {
                    response.Phrases = phrases.Select(x =>
                                                      new ContractPhrase
                    {
                        Keyword = request.Keyword,
                        Comment = x.Comment,
                        Right   = x.Value
                    }).ToList();
                }

                if (request.Skip)
                {
                    response.Phrases = phrases.Skip(5).Select(x =>
                                                              new ContractPhrase
                    {
                        Keyword = request.Keyword,
                        Comment = x.Comment,
                        Right   = x.Value
                    }).ToList();
                }
                else
                {
                    response.Phrases = phrases.Take(5).Select(x =>
                                                              new ContractPhrase
                    {
                        Keyword = request.Keyword,
                        Comment = x.Comment,
                        Right   = x.Value
                    }).ToList();
                }
            }
            return(response);
        }
예제 #2
0
        public GetPhrasesResponse GetRandomPhrase(GetRandomPhraseRequest request)
        {
            var response = new GetPhrasesResponse();

            using (var ctx = new TypeFineContext())
            {
                var item = ctx.Phrases.Where(x => !String.IsNullOrEmpty(x.Comment)).OrderBy(r => Guid.NewGuid()).Take(1);
                var itm  = item.Single();
                response.Phrases = new List <ContractPhrase>(new[]
                {
                    new ContractPhrase
                    {
                        Comment = itm.Comment,
                        Right   = itm.Value
                    }
                });
            }
            return(response);
        }