Пример #1
0
        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() }
            }));
        }
Пример #2
0
        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);
        }
Пример #3
0
        public async Task <IActionResult> PostFields([FromBody] FieldsRequest request)
        {
            var response = await _apiService.GetFieldsAsync(request);

            return(new JsonResult(response));
        }