public IHttpActionResult Get(string name, int?pageNumber = null, int?pageSize = null, bool dataSeries = false, string parameters = null) { try { if (string.IsNullOrEmpty(name)) { return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, Messages.ViewNameIsMissing))); } Durados.Query query = GetQuery(name); if (query == null) { return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NotFound, string.Format(Messages.ViewNameNotFound, name)))); } if (!IsAllow(query)) { return(ResponseMessage(Request.CreateResponse(HttpStatusCode.Forbidden, Messages.ActionIsUnauthorized))); } Dictionary <string, object> values = null; if (!string.IsNullOrEmpty(parameters)) { values = Durados.Web.Mvc.UI.Json.JsonSerializer.Deserialize((System.Web.HttpContext.Current.Server.UrlDecode(parameters))); } else if (Request.Method == HttpMethod.Post) { string json = Request.Content.ReadAsStringAsync().Result; if (!string.IsNullOrEmpty(json)) { values = Durados.Web.Mvc.UI.Json.JsonSerializer.Deserialize((System.Web.HttpContext.Current.Server.UrlDecode(json))); if (values.ContainsKey("parameters") && values["parameters"] is Dictionary <string, object> ) { values = (Dictionary <string, object>)values["parameters"]; } } } var data = query.Get(pageNumber ?? 0, pageSize ?? 1000, values, dataSeries); return(Ok(data)); } catch (Exception exception) { throw new BackAndApiUnexpectedResponseException(exception, this); } }
protected virtual bool IsAllow(Durados.Query query) { return(query.IsAllow()); }