BloggingSystem.Services.Controllers.PostsController.GetByKeyword C# (CSharp) Method

GetByKeyword() private method

private GetByKeyword ( [ keyword, [ sessionKey ) : IEnumerable
keyword [
sessionKey [
return IEnumerable
        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;
        }