Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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.
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }