public async Task <IActionResult> PostFields([FromBody] FieldsRequest request) { object response = null; if (request.Index == null) { Response.StatusCode = 400; return(new JsonResult("Index property is missing.")); } if (request.Type == RequestType.Fields) { try { response = await GetShema(request.Index); } catch (Exception e) { Console.WriteLine(e.StackTrace); Response.StatusCode = 500; return(Content(e.Message)); } } if (response == null) { Response.StatusCode = 400; return(new JsonResult("Incorrect request for this endpoint.")); } return(new JsonResult(response, new JsonSerializerOptions { IgnoreNullValues = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase, Converters = { new ColumnTypeJsonConverter() } })); }
public async Task <ActionResult <List <Field> > > ListFields([FromBody] FieldsRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.TemplatesReference)) { return(Unauthorized()); } var elements = StlAll.Elements; if (!elements.TryGetValue(request.ElementName, out var elementType)) { return(NotFound()); } var list = new List <Field>(); var fields = new List <FieldInfo>(); if (typeof(StlListBase).IsAssignableFrom(elementType)) { fields.AddRange(typeof(StlListBase).GetFields(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public)); } fields.AddRange(elementType.GetFields(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public)); foreach (var field in fields) { var fieldName = StringUtils.ToCamelCase(field.Name); var attr = (StlAttributeAttribute)Attribute.GetCustomAttribute(field, typeof(StlAttributeAttribute)); if (attr != null) { list.Add(new Field { Name = fieldName, Title = attr.Title }); } } return(list); }
public async Task <IActionResult> PostFields([FromBody] FieldsRequest request) { var response = await _apiService.GetFieldsAsync(request); return(new JsonResult(response)); }