public ActionResult Search(String q, int? page)
        {
            Int32 currentPage = page ?? 1;

            SearchResultViewModel searchResult = new SearchResultViewModel()
            {
                SearchQuery = q,
                SearchSuggestion=String.Empty
            };
            IList<XsQuestion> searchQuestions = new List<XsQuestion>();

            if (!String.IsNullOrEmpty(q))
            {
                ISearchEngineService searchService = new SearchEngineService(questionRepository);
                searchQuestions = searchService.SearchQuestions(q);
            }

            IPagination pageQuestions = searchQuestions.AsPagination(currentPage,Settings.QUESTIONS_PAGINATION_SIZE);

            Int32 currentPageSize = Settings.TAGS_PAGINATION_SIZE;

            if (currentPage == pageQuestions.TotalPages)
            {
                currentPageSize = pageQuestions.TotalItems - (pageQuestions.TotalPages - 1) * Settings.TAGS_PAGINATION_SIZE;
            }
            else
            {
                if (0 == pageQuestions.TotalPages)
                {
                    currentPageSize = 0;
                }
            }

            searchResult.Questions = pageQuestions;
            if (0 == pageQuestions.TotalItems)
            {
                String searchSuggestion = new XpertSquare.Core.Search.GoogleSearchSuggestor().GetSuggestion(q);
                searchResult.SearchSuggestion = searchSuggestion;
            }

            return View(searchResult);
        }