private static BaseCollection <DCTFileField> BuildFileFields(DocLibContext context, IEnumerable <Field> spfields, File file) { BaseCollection <DCTFileField> results = new BaseCollection <DCTFileField>(); context.Load(file.ListItemAllFields); context.Load(context.BaseList.Fields); context.ExecuteQuery(); foreach (Field field in spfields) { DCTFileField fileField = new DCTFileField(); DCTFieldInfo fieldInfo = new DCTFieldInfo(); DCTConverterHelper.Convert(field, fieldInfo); if (string.IsNullOrEmpty(fieldInfo.ID)) { continue; } fileField.Field = fieldInfo; fileField.FieldValue = file.ListItemAllFields[field.InternalName] == null ? "" : file.ListItemAllFields[field.InternalName].ToString(); results.Add(fileField); } return(results); }
private bool FieldExists(DCTFieldInfo field, DocLibContext context) { context.Load(context.BaseList.Fields); context.ExecuteQuery(); bool found = false; foreach (Field spField in context.BaseList.Fields) { if (spField.Title == field.Title) { found = true; break; } } return(found); }
public void DCMDeleteField(DCTFieldInfo field) { (string.IsNullOrEmpty(field.InternalName) && string.IsNullOrEmpty(field.Title) && string.IsNullOrEmpty(field.ID)).TrueThrow <ArgumentException>("请设置Field的Title、Internal Name或ID."); using (DocLibContext context = new DocLibContext()) { Field spField = null; if (!string.IsNullOrEmpty(field.Title)) { spField = context.BaseList.Fields.GetByTitle(field.Title); } else if (!string.IsNullOrEmpty(field.InternalName)) { spField = context.BaseList.Fields.GetByInternalNameOrTitle(field.InternalName); } else if (!string.IsNullOrEmpty(field.ID)) { spField = context.BaseList.Fields.GetById(new Guid(field.ID)); } else { throw new TargetNotFoundException(); } context.Load(spField); context.ExecuteQuery(); spField.DeleteObject(); context.BaseList.Update(); context.Load(spField); context.ExecuteQuery(); //context.BaseList.Fields. } }
public BaseCollection <DCTFieldInfo> DCMGetFields() { using (DocLibContext context = new DocLibContext(ServiceHelper.GetDocumentLibraryName())) { context.Load(context.BaseList.Fields); context.ExecuteQuery(); BaseCollection <DCTFieldInfo> result = new BaseCollection <DCTFieldInfo>(); foreach (Field field in context.BaseList.Fields) { DCTFieldType fieldType; if (!Enum.TryParse <DCTFieldType>(field.TypeAsString, out fieldType)) { continue; } DCTFieldInfo fieldInfo = new DCTFieldInfo(); DCTConverterHelper.Convert(field, fieldInfo); result.Add(fieldInfo); } return(result); } }