/// <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); }
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); }