public ActionResult Search(SearchFormViewModel searchParameters) { if (ModelState.IsValid == false) { this.Flash(Toastr.ERROR, "Error", "Enter search pattern!"); return(RedirectToAction("SearchForm", "Search")); } string[] phrases = searchParameters.SearchPattern.Split('"'); //svaki neparni index u phrases je razmak, pa ga mičemo IEnumerable <string[]> removeBlank = phrases.Select((item, index) => index % 2 == 0 ? item.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) : new[] { item }); List <string> pattern = removeBlank.SelectMany(element => element).ToList(); string tsPattern = ConvertTo.LogicalPattern(pattern, searchParameters.LogicalOperator == (int)Operator.Or ? Operator.Or : Operator.And); string queryString; List <MovieViewModel> movies = TextSearch.MorphologySemantic(tsPattern, out queryString); var viewModel = new SearchFormViewModel() { SearchPattern = searchParameters.SearchPattern, LogicalOperator = searchParameters.LogicalOperator, QueryString = queryString, Movies = movies }; UpdateSearchHistory(tsPattern); ModelState.Clear(); //bez ovoga ne bi se mijenjao QueryString return(View("SearchForm", viewModel)); }