Exemple #1
0
        public JsonResult GetNodeInfo(string id)
        {
            if (MemoryNodes != null && MemoryNodes.Count > 0)
            {
                var node = MemoryNodes.FirstOrDefault(n => n.id == id);

                if (node != null)
                {
                    var readableSize = GetReadableSize(node.size);

                    return
                        (Json(new { filetype = ((TypeEnum)node.type).ToString(), name = node.text, size = readableSize }));
                }
            }

            return(null);
        }
Exemple #2
0
        public JsonResult CreateFolder(string path, string name)
        {
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }

            FolderManager.Create(path, name);
            var newPath = path + @"\" + name;

            var newNode = CreateNewFolderNode(name, newPath);

            MemoryNodes.Add(newNode);

            var res = new TreeViewModel {
                factor = new List <NodeViewModel> {
                    newNode
                }, status = true, prompt = string.Empty
            };

            return(Json(res, JsonRequestBehavior.AllowGet));
        }
        public NodeViewModel GetNodeById(string id)
        {
            if (MemoryNodes != null && MemoryNodes.Count > 0 && id != "-1")
            {
                var node = MemoryNodes.FirstOrDefault(n => n.id == id);

                if (node != null)
                {
                    // not root folder or file
                    node.includeRoot = false;
                    return(node);
                }

                return(null);
            }

            // root node
            return(new NodeViewModel
            {
                includeRoot = true,
                path = ConfigurationManager.AppSettings["mappedRootDir"]
            });
        }
Exemple #4
0
        private List <NodeViewModel> ConvertToNodeViewModel(FolderModel root, bool includeRoot = false)
        {
            var fml = new List <NodeViewModel>();

            // folder children
            foreach (var folder in root.Folders)
            {
                var fm = new NodeViewModel
                {
                    id    = folder.Path.GetHashCode().ToString(),
                    path  = folder.Path,
                    text  = folder.Name,
                    type  = (int)TypeEnum.Folder,
                    state = new StateModel {
                        opened = false
                    },
                    size     = folder.Size,
                    children = true
                };
                MemoryNodes.Add(fm);
                fml.Add(fm);
            }

            // file children
            var fl = new List <NodeViewModel>();

            foreach (var file in root.Files)
            {
                var f = new NodeViewModel
                {
                    id    = file.Path.GetHashCode().ToString(),
                    path  = file.Path,
                    text  = file.Name,
                    size  = file.Size,
                    type  = (int)TypeEnum.File,
                    state = new StateModel {
                        opened = false
                    },
                    children = false
                };
                MemoryNodes.Add(f);
                fl.Add(f);
            }

            fml.AddRange(fl);

            if (includeRoot)
            {
                var rootModel = new NodeViewModel
                {
                    id    = root.Path.GetHashCode().ToString(),
                    path  = root.Path,
                    text  = root.Name,
                    type  = (int)TypeEnum.Root,
                    state = new StateModel {
                        opened = true
                    },
                    children = fml,
                };
                MemoryNodes.Add(rootModel);
                return(new List <NodeViewModel> {
                    rootModel
                });
            }
            else
            {
                return(fml);
            }
        }