public ActionResult Search(string query, int?page, int?order) { page = page ?? 1; order = order ?? 0; Lib.Searching.SmlouvaSearchResult res = null; var apires = Framework.ApiAuth.IsApiAuth(this, parameters: new Framework.ApiCall.CallParameter[] { new Framework.ApiCall.CallParameter("query", query), new Framework.ApiCall.CallParameter("page", page?.ToString()), new Framework.ApiCall.CallParameter("order", order?.ToString()) } ); if (apires.Authentificated) { if (string.IsNullOrWhiteSpace(query)) { return(View("Error404")); } bool?platnyzaznam = null; //1 - nic defaultne if ( System.Text.RegularExpressions.Regex.IsMatch(query.ToLower(), "(^|\\s)id:") || query.ToLower().Contains("idverze:") || query.ToLower().Contains("idsmlouvy:") || query.ToLower().Contains("platnyzaznam:") ) { platnyzaznam = null; } res = HlidacStatu.Lib.Data.Smlouva.Search.SimpleSearch(query, page.Value, HlidacStatu.Lib.Data.Smlouva.Search.DefaultPageSize, (HlidacStatu.Lib.Data.Smlouva.Search.OrderResult)order.Value, platnyZaznam: platnyzaznam); if (res.IsValid == false) { Response.StatusCode = 500; return(Json(new { error = "Bad query", reason = res.ElasticResults.ServerError }, JsonRequestBehavior.AllowGet)); } else { var filtered = res.Results .Select(m => HlidacStatu.Lib.Data.Smlouva.Export(m, apires.ApiCall.UserRoles.Contains("Admin"), false)) .ToArray(); return(Content(Newtonsoft.Json.JsonConvert.SerializeObject(new { total = res.Total, items = filtered }, Newtonsoft.Json.Formatting.None), "application/json")); } } else { Response.StatusCode = 401; return(Json(new { error = "Unauthorized" }, JsonRequestBehavior.AllowGet)); } }
public SearchResultDTO <Lib.Data.Smlouva> Hledat([FromUri] string dotaz = null, [FromUri] int?strana = null, [FromUri] int?razeni = null) { if (strana < 1) { strana = 1; } if (strana * ApiV2Controller.DefaultResultPageSize > ApiV2Controller.MaxResultsFromES) { throw new HttpResponseException(new ErrorMessage(System.Net.HttpStatusCode.BadRequest, $"Hodnota 'strana' nemůže být větší než {ApiV2Controller.MaxResultsFromES / ApiV2Controller.DefaultResultPageSize}")); } Lib.Searching.SmlouvaSearchResult result = null; if (string.IsNullOrWhiteSpace(dotaz)) { throw new HttpResponseException(new ErrorMessage(System.Net.HttpStatusCode.BadRequest, $"Hodnota dotaz chybí.")); } bool?platnyzaznam = null; //1 - nic defaultne if ( System.Text.RegularExpressions.Regex.IsMatch(dotaz.ToLower(), "(^|\\s)id:") || dotaz.ToLower().Contains("idverze:") || dotaz.ToLower().Contains("idsmlouvy:") || dotaz.ToLower().Contains("platnyzaznam:") ) { platnyzaznam = null; } result = Lib.Data.Smlouva.Search.SimpleSearch(dotaz, strana.Value, ApiV2Controller.DefaultResultPageSize, (Lib.Data.Smlouva.Search.OrderResult)razeni.Value, platnyZaznam: platnyzaznam); if (result.IsValid == false) { throw new HttpResponseException(new ErrorMessage(System.Net.HttpStatusCode.BadRequest, $"Špatně nastavená hodnota dotaz=[{dotaz}]")); } else { var filtered = result.ElasticResults.Hits .Select(m => Lib.Data.Smlouva.Export(m.Source, this.ApiAuth.ApiCall.UserRoles.Contains("Admin") || this.ApiAuth.ApiCall.UserRoles.Contains("KomercniLicence"), this.ApiAuth.ApiCall.UserRoles.Contains("Admin") || this.ApiAuth.ApiCall.UserRoles.Contains("KomercniLicence") ) ) .ToArray(); return(new SearchResultDTO <Lib.Data.Smlouva>(result.Total, result.Page, filtered)); } }