Пример #1
0
        private string LoadUri(DCTStorageObject folder, DocLibContext context)
        {
            if (folder is DCTFolder)
            {
                if ((folder as DCTFolder).IsRootFolder)
                {
                    context.Load(context.BaseList.RootFolder);
                    context.ExecuteQuery();

                    return(context.BaseList.RootFolder.ServerRelativeUrl);
                }
            }

            if (folder.Uri.IsNotEmpty())
            {
                return(folder.Uri);
            }

            ListItem listItem = GetListItemById(folder.ID, context);

            (listItem == null).TrueThrow <TargetNotFoundException>("文件或文件夹(ID={0})不存在。", folder.ID);


            return(listItem["FileRef"].ToString());
        }
Пример #2
0
        public void DCMRemove(DCTStorageObject storageObject)
        {
            using (DocLibContext clientContext = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
            {
                string uri = LoadUri(storageObject, clientContext);
                if (storageObject is DCTFile)
                {
                    ClientObject clientObject = (File)clientContext.Web.GetFileByServerRelativeUrl(uri);
                    ((File)clientObject).Recycle();
                }
                else
                if (storageObject is DCTFolder)
                {
                    ClientObject clientObject = clientContext.Web.GetFolderByServerRelativeUrl(uri);
                    ((Folder)clientObject).Recycle();
                }

                clientContext.ExecuteQuery();
            }
        }
Пример #3
0
        private ListItem LoadItem(DCTStorageObject folder, DocLibContext context)
        {
            if (folder is DCTFolder)
            {
                if ((folder as DCTFolder).IsRootFolder)
                {
                    context.Load(context.BaseList.RootFolder);
                    context.ExecuteQuery();

                    return(null);
                }
            }

            if (folder.Uri.IsNotEmpty())
            {
                return(GetListItemByUri(folder.Uri, context));
            }

            return(GetListItemById(folder.ID, context));
        }
Пример #4
0
        public DCTFolder DCMGetParentFolder(DCTStorageObject storageObject)
        {
            using (DocLibContext clientContext = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
            {
                ListItem listItem = LoadItem(storageObject, clientContext);
                (listItem == null).TrueThrow <ArgumentException>("无法找到文件夹,传入的为根目录或文件、文件夹不存在。");

                DCTFolder folder = null;

                clientContext.Load(clientContext.BaseList.RootFolder);

                clientContext.ExecuteQuery();

                if (string.Compare(listItem.FieldValues["FileDirRef"].ToString(), clientContext.BaseList.RootFolder.ServerRelativeUrl, true) == 0)
                {
                    folder = new DCTFolder()
                    {
                        ID = 0, IsRootFolder = true
                    };

                    DCTConverterHelper.Convert(clientContext.BaseList.RootFolder, folder);
                }
                else
                {
                    CamlQuery query = new CamlQuery();
                    query.ViewXml = Caml.SimpleView(Caml.Field("ServerUrl").Eq(Caml.Value("Text", listItem.FieldValues["FileDirRef"].ToString())), CamlBuilder.ViewType.RecursiveAll).ToCamlString();

                    ListItemCollection parentListItem = clientContext.BaseList.GetItems(query);
                    clientContext.Load(parentListItem);
                    clientContext.ExecuteQuery();

                    folder = new DCTFolder();

                    DCTConverterHelper.Convert(parentListItem[0], folder);
                }

                return(folder);
            }
        }
        public void DCMRemove(DCTStorageObject storageObject)
        {
            using (DocLibContext clientContext = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
            {
                string uri = LoadUri(storageObject, clientContext);
                if (storageObject is DCTFile)
                {
                    ClientObject clientObject = (File)clientContext.Web.GetFileByServerRelativeUrl(uri);
                    ((File)clientObject).Recycle();

                }
                else
                    if (storageObject is DCTFolder)
                    {
                        ClientObject clientObject = clientContext.Web.GetFolderByServerRelativeUrl(uri);
                        ((Folder)clientObject).Recycle();
                    }

                clientContext.ExecuteQuery();
            }
          
        }
        public DCTFolder DCMGetParentFolder(DCTStorageObject storageObject)
        {
            using (DocLibContext clientContext = new DocLibContext(ServiceHelper.GetDocumentLibraryName()))
            {
                ListItem listItem = LoadItem(storageObject, clientContext);
                (listItem == null).TrueThrow<ArgumentException>("无法找到文件夹,传入的为根目录或文件、文件夹不存在。");

                DCTFolder folder = null;

                clientContext.Load(clientContext.BaseList.RootFolder);

                clientContext.ExecuteQuery();

                if (string.Compare(listItem.FieldValues["FileDirRef"].ToString(), clientContext.BaseList.RootFolder.ServerRelativeUrl, true) == 0)
                {
                    folder = new DCTFolder() { ID = 0, IsRootFolder = true };

                    DCTConverterHelper.Convert(clientContext.BaseList.RootFolder, folder);
                }
                else
                {
                    CamlQuery query = new CamlQuery();
                    query.ViewXml = Caml.SimpleView(Caml.Field("ServerUrl").Eq(Caml.Value("Text", listItem.FieldValues["FileDirRef"].ToString())), CamlBuilder.ViewType.RecursiveAll).ToCamlString();

                    ListItemCollection parentListItem = clientContext.BaseList.GetItems(query);
                    clientContext.Load(parentListItem);
                    clientContext.ExecuteQuery();

                    folder = new DCTFolder();

                    DCTConverterHelper.Convert(parentListItem[0], folder);
                }

                return folder;
            }
        }