public IEnumerable<PostModel> GetByKeyword([FromUri]string keyword,
[ValueProvider(typeof(HeaderValueProviderFactory<string>))]string sessionKey)
{
if (keyword == null)
{
var errorResponse = this.Request.CreateErrorResponse(
HttpStatusCode.BadRequest, "Keyword to search is not provided!");
throw new HttpResponseException(errorResponse);
}
var allPostModels = this.GetAll(sessionKey);
var keywordLowerCase = keyword.ToLower();
var allPostsByKeyword = new List<PostModel>();
foreach (var post in allPostModels)
{
var titleWords = post.Title.Split(WordSeparators, StringSplitOptions.RemoveEmptyEntries);
foreach (var titleWord in titleWords)
{
if (titleWord.ToLower() == keywordLowerCase)
{
allPostsByKeyword.Add(post);
break;
}
}
}
return allPostsByKeyword;
}