public JsonResult SearchForItems(string searchString, SearchForItemsMethodGroup methodGroup)
        {
            var validationResult = methodGroup.SearchTextIsValid(searchString);

            var searchResult =
                When<MethodResult<IList<SearchForItemsResult>>>
                    .True(validationResult.Success)
                    .Then(() =>
                        new WithSession(methodGroup.SessionMethod)
                            .ReturnResult(session =>
                                new MethodResult<IList<SearchForItemsResult>>().SetValue(methodGroup.SearchQueryMethod(searchString, session))))
                    .Else(() => new MethodResult<IList<SearchForItemsResult>>(validationResult.Messages, new List<SearchForItemsResult>()));

            return new JsonResult { Data = new SimpleResult<IList<SearchForItemsResult>>(searchResult) };
        }