public IEnumerable<dynamic> GetFields(int appId, string staticName) { SetAppIdAndUser(appId); var fields = CurrentContext.ContentType.GetContentTypeConfiguration(staticName) .OrderBy(ct => ((AttributeBase)ct.Item1).SortOrder); var appDef = new BetaFullApi(null, appId, CurrentContext); var appInputTypes = appDef.GetInputTypes(true).ToList(); var noTitleCount = 0; string fldName = ""; // assemble a list of all input-types (like "string-default", "string-wysiwyg..." Dictionary<string, IEntity> inputTypesDic; try { inputTypesDic = appInputTypes.ToDictionary( a => (fldName = a.GetBestValue("EntityTitle")?.ToString() ?? "error-no-title" + noTitleCount++), a => a); } catch (Exception ex) { throw new Exception("Error on " + fldName + "; note: noTitleCount " + noTitleCount, ex); } var ser = new Serializer(); return fields.Select(a => { var inputtype = findInputType(a.Item2); return new { Id = a.Item1.AttributeId, ((AttributeBase)a.Item1).SortOrder, a.Item1.Type, InputType = inputtype, StaticName = a.Item1.Name, a.Item1.IsTitle, a.Item1.AttributeId, Metadata = a.Item2.ToDictionary(e => e.Key, e => ser.Prepare(e.Value)), InputTypeConfig = inputTypesDic.ContainsKey(inputtype) ? ser.Prepare(inputTypesDic[inputtype]) : null }; }); }
public IEnumerable<Dictionary<string, object>> GetAllOfTypeForAdmin(int appId, string contentType) { SetAppIdAndUser(appId); Serializer.ConfigureForAdminUse(); var api = new BetaFullApi(null, appId, CurrentContext); var list = Serializer.Prepare(api.GetEntitiesOfType(contentType)); var newList = list.Select(li => li.ToDictionary(x1 => x1.Key, x2 => TruncateIfString(x2.Value, 50))).ToList(); return newList; }
public IEnumerable<Dictionary<string, object>> InputTypes(int appId) { SetAppIdAndUser(appId); var appDef = new BetaFullApi(null, appId, CurrentContext); var appInputTypes = appDef.GetInputTypes(true).ToList(); return Serializer.Prepare(appInputTypes); }