Exemple #1
0
        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);
            }
        }
Exemple #2
0
 protected virtual bool IsAllow(Durados.Query query)
 {
     return(query.IsAllow());
 }