コード例 #1
0
        private static FileNodeInfo[] GetFiles(ISharePointCommandContext context, FolderNodeInfo folderNodeInfo)
        {
            List <FileNodeInfo> nodeInfos = new List <FileNodeInfo>();

            try
            {
                SPList   styleLibrary = context.Web.GetList(Utilities.CombineUrl(context.Web.ServerRelativeUrl, "Style%20Library"));
                SPFolder folder       = styleLibrary.RootFolder;
                if (folderNodeInfo != null)
                {
                    folder = context.Web.GetFolder(folderNodeInfo.Url);
                }

                SPFileCollection files = folder.Files;
                if (files != null)
                {
                    nodeInfos = files.ToFileNodeInfo();
                }
            }
            catch (Exception ex)
            {
                context.Logger.WriteLine(String.Format(Resources.FileSharePointCommands_RetrieveFilesException,
                                                       ex.Message,
                                                       Environment.NewLine,
                                                       ex.StackTrace), LogCategory.Error);
            }

            return(nodeInfos.ToArray());
        }
コード例 #2
0
        public IHttpActionResult Get(int key)
        {
            FolderNodeInfo result = null;

            this.ProcessEntity(() =>
            {
                var node = Service.GetNodeById(key);
                result   = Convert(node, false)?.FirstOrDefault();
            });

            return(Ok(result));
        }
コード例 #3
0
        private List <FolderNodeInfo> Convert(TreeNode <MediaFolderNode> folderNode, bool addChildren = true)
        {
            if (folderNode == null)
            {
                return(null);
            }

            var result = new List <FolderNodeInfo>();

            ConvertNode(folderNode);
            return(result);

            void ConvertNode(TreeNode <MediaFolderNode> node)
            {
                var val = node.Value;

                var parent = new FolderNodeInfo
                {
                    Id          = val.Id,
                    ParentId    = val.ParentId,
                    AlbumName   = val.AlbumName,
                    Name        = val.Name,
                    IsAlbum     = val.IsAlbum,
                    Path        = val.Path,
                    Slug        = val.Slug,
                    HasChildren = node.HasChildren,
                    Children    = new List <FolderNodeInfo.FolderChildNodeInfo>()
                };

                if (node.HasChildren)
                {
                    foreach (var child in node.Children)
                    {
                        parent.Children.Add(new FolderNodeInfo.FolderChildNodeInfo
                        {
                            Id   = child.Value.Id,
                            Name = child.Value.Name,
                            Path = child.Value.Path
                        });
                    }
                }

                result.Add(parent);

                if (addChildren && node.HasChildren)
                {
                    node.Children.Each(child => ConvertNode(child));
                }
            }
        }
コード例 #4
0
        public IHttpActionResult CreateFolder(ODataActionParameters parameters)
        {
            FolderNodeInfo newFolder = null;

            this.ProcessEntity(() =>
            {
                var path = parameters.GetValueSafe <string>("Path");

                var result = _mediaService.CreateFolder(path);
                newFolder  = Convert(result.Node, false)?.FirstOrDefault();
            });

            return(Created(newFolder));
        }
コード例 #5
0
        public IHttpActionResult MoveFolder(ODataActionParameters parameters)
        {
            FolderNodeInfo movedFolder = null;

            this.ProcessEntity(() =>
            {
                var path            = parameters.GetValueSafe <string>("Path");
                var destinationPath = parameters.GetValueSafe <string>("DestinationPath");

                var result  = _mediaService.MoveFolder(path, destinationPath);
                movedFolder = Convert(result.Node, false)?.FirstOrDefault();
            });

            return(Ok(movedFolder));
        }
        internal static List <FolderNodeInfo> ToFolderNodeInfo(this SPFolderCollection folders)
        {
            List <FolderNodeInfo> nodeInfos = new List <FolderNodeInfo>();

            foreach (SPFolder folder in folders)
            {
                FolderNodeInfo nodeInfo = new FolderNodeInfo
                {
                    Name = folder.Name,
                    Url  = folder.Url
                };
                nodeInfos.Add(nodeInfo);
            }

            return(nodeInfos);
        }