public override int GetHashCode()
 {
     return(ProviderType.GetHashCode() ^
            CustomDirectory.GetHashCode() ^
            Enabled.GetHashCode() ^
            DefaultSimulator.GetHashCode());
 }
Exemple #2
0
        public void GetCustomDirectories(string path)
        {
            var dirinfo = new DirectoryInfo(path);

            CustomDirectory.Items.Clear();
            try
            {
                foreach (var directory in dirinfo.GetDirectories())
                {
                    var dir = new CustomDirectory
                    {
                        Name        = directory.FullName,
                        ShortName   = directory.FullName.Remove(0, directory.FullName.LastIndexOf('\\') + 1),
                        DateCreated = directory.CreationTime,
                        Type        = "File folder",
                        Size        = "",
                    };

                    CustomDirectory.Items.Add(dir);
                }
            }
            catch (System.UnauthorizedAccessException)
            {
                System.Console.WriteLine("Got Exception");
            }
        }
Exemple #3
0
        public IEnumerable<CustomFile> AllEnumerable(CustomDirectory dir)
        {
            List<CustomFile> list = new List<CustomFile>();
            var baseDir = dir.PhysicalPath;
            if (Directory.Exists(baseDir))
            {
                //output directory
                foreach (var folder in IO.IOUtility.EnumerateDirectoriesExludeHidden(baseDir))
                {
                    var customFile = new CustomFile();
                    customFile.Site = dir.Site;
                    customFile.FileType = "Folder";

                    customFile.Name = folder.Name;
                    customFile.Directory = new CustomDirectory(dir, customFile.Name);
                    list.Add(customFile);
                }
                //output files
                foreach (var file in IO.IOUtility.EnumerateFilesExludeHidden(baseDir))
                {
                    var customFile = new CustomFile(file.FullName);
                    customFile.Site = dir.Site;
                    customFile.Directory = new CustomDirectory(dir, customFile.Name);
                    list.Add(customFile);
                }
            }
            return list;
        }
Exemple #4
0
        public virtual ActionResult Index(string search, string fullName)
        {
            CustomDirectory di   = new CustomDirectory(Site, fullName ?? "");
            var             data = Manager.All(di);

            return(View(data));
        }
Exemple #5
0
        /// <summary>
        /// The file URL.
        /// </summary>
        /// <param name="relativeFilePath">The relative file path.</param>
        /// <param name="withCDNResolving">if set to <c>true</c> [with CDN resolving].</param>
        /// <returns></returns>
        public virtual IHtmlString FileUrl(string relativeFilePath, bool withCDNResolving)
        {
            Site       site = this.Site;
            var        dir  = Path.GetDirectoryName(relativeFilePath);
            CustomFile file;

            if (string.IsNullOrEmpty(dir))
            {
                file = new CustomFile(site, relativeFilePath);
            }
            else
            {
                CustomDirectory customDir = new CustomDirectory(site, dir).LastVersion();
                file = new CustomFile(customDir, Path.GetFileName(relativeFilePath));
            }
            file = file.LastVersion();
            if (withCDNResolving)
            {
                return(ResourceCDNUrl(file.VirtualPath));
            }
            else
            {
                return(new HtmlString(Url.Content(file.VirtualPath)));
            }
        }
        public override void Execute(CustomDirectoriesViewModel contextViewModel, object parameter)
        {
            if (parameter is not CustomDirectory customDir)
            {
                customDir = new CustomDirectory();
            }

            Helper.OpenWindow <AdonisWindow>("Custom Directory", () =>
            {
                var index  = contextViewModel.GetIndex(customDir);
                var input  = new CustomDir(customDir);
                var result = input.ShowDialog();
                if (!result.HasValue || !result.Value || string.IsNullOrEmpty(customDir.Header) && string.IsNullOrEmpty(customDir.DirectoryPath))
                {
                    return;
                }

                if (index > 1)
                {
                    contextViewModel.Edit(index, customDir);
                }
                else
                {
                    contextViewModel.Add(customDir);
                }
            });
        }
Exemple #7
0
        public IEnumerable <CustomFile> AllEnumerable(CustomDirectory dir)
        {
            List <CustomFile> list = new List <CustomFile>();
            var baseDir            = dir.PhysicalPath;

            if (Directory.Exists(baseDir))
            {
                //output directory
                foreach (var folder in IO.IOUtility.EnumerateDirectoriesExludeHidden(baseDir))
                {
                    var customFile = new CustomFile();
                    customFile.Site     = dir.Site;
                    customFile.FileType = "Folder";

                    customFile.Name      = folder.Name;
                    customFile.Directory = new CustomDirectory(dir, customFile.Name);
                    list.Add(customFile);
                }
                //output files
                foreach (var file in IO.IOUtility.EnumerateFilesExludeHidden(baseDir))
                {
                    var customFile = new CustomFile(file.FullName);
                    customFile.Site      = dir.Site;
                    customFile.Directory = new CustomDirectory(dir, customFile.Name);
                    list.Add(customFile);
                }
            }
            return(list);
        }
Exemple #8
0
        public virtual void CreateDirectory(Site site, CustomDirectory parentDir, string folderName)
        {
            var dir = parentDir != null ? new CustomDirectory(parentDir, folderName) : new CustomDirectory();

            dir.Name = folderName;
            dir.Site = site;
            dir.Create();
        }
Exemple #9
0
        public CustomDir(CustomDirectory customDir)
        {
            DataContext = customDir;
            InitializeComponent();

            Activate();
            WpfSuckMyDick.Focus();
            WpfSuckMyDick.SelectAll();
        }
Exemple #10
0
        public virtual ActionResult Export(string fullName)
        {
            CustomDirectory dir      = new CustomDirectory(Site, fullName ?? "");
            var             fileName = GetZipFileName(fullName ?? "");

            Response.AttachmentHeader(fileName);
            Manager.Export(dir, Response.OutputStream);
            return(null);
        }
Exemple #11
0
 public virtual ActionResult Import(string fullName, bool @override)
 {
     if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
     {
         CustomDirectory dir  = new CustomDirectory(Site, fullName ?? "");
         var             file = Request.Files["file"];
         Manager.Import(Site, dir, file.InputStream, @override);
     }
     return(RedirectToAction("Index", new { fullName = fullName }));
 }
        public void TestPhysicalPath()
        {
            string dirName = "dir1";
            var    site    = new Site("Site1");
            var    dir     = new CustomDirectory(site, new string[] { dirName });

            string expected1 = Path.Combine(site.PhysicalPath, "files", dirName);

            Assert.AreEqual(expected1, dir.PhysicalPath, true);
        }
Exemple #13
0
        public void TestPhysicalPath()
        {
            string dirName = "dir1";
            var site = new Site("Site1");
            var dir = new CustomDirectory(site, new string[] { dirName });

            string expected1 = Path.Combine(site.PhysicalPath, "files", dirName);

            Assert.AreEqual(expected1, dir.PhysicalPath, true);
        }
Exemple #14
0
        public void TestVirtualPath()
        {
            string dirName = "page1";
            var site = new Site("Site1");
            var dir = new CustomDirectory(site, new string[] { dirName });

            string expected1 = Kooboo.Web.Url.UrlUtility.Combine(site.VirtualPath, "files", dirName);

            Assert.AreEqual(expected1, dir.VirtualPath, true);
        }
Exemple #15
0
        public void TestParseFromPhysicalPath()
        {
            string siteName = "site1";
            string dirName = "dir1";
            string physicalPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sites", siteName, "files", dirName);

            var page = new CustomDirectory(physicalPath);

            Assert.AreEqual(dirName, page.Name);
            Assert.AreEqual(siteName, page.Site.Name);
        }
        public void TestVirtualPath()
        {
            string dirName = "page1";
            var    site    = new Site("Site1");
            var    dir     = new CustomDirectory(site, new string[] { dirName });


            string expected1 = Kooboo.Web.Url.UrlUtility.Combine(site.VirtualPath, "files", dirName);

            Assert.AreEqual(expected1, dir.VirtualPath, true);
        }
        public void TestParseFromPhysicalPath()
        {
            string siteName     = "site1";
            string dirName      = "dir1";
            string physicalPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sites", siteName, "files", dirName);

            var page = new CustomDirectory(physicalPath);

            Assert.AreEqual(dirName, page.Name);
            Assert.AreEqual(siteName, page.Site.Name);
        }
Exemple #18
0
        public void TestChildPhysicalPath()
        {
            string parentDir = "dir1";
            var site = new Site("Site1");
            var parent = new CustomDirectory(site, new string[] { parentDir });
            string dir2 = "dir2";
            var child = new CustomDirectory(parent, dir2);

            string expected1 = Path.Combine(site.PhysicalPath, "files", parentDir, dir2);

            Assert.AreEqual(expected1, child.PhysicalPath, true);
        }
Exemple #19
0
 public void Import(Site site, CustomDirectory dir, Stream zipStream, bool @override)
 {
     locker.EnterWriteLock();
     try
     {
         ImportHelper.Import(site, dir.PhysicalPath, zipStream, @override);
     }
     finally
     {
         locker.ExitWriteLock();
     }
 }
Exemple #20
0
        public XElement Serialize(string name)
        {
            var elem = new XElement[]
            {
                ((int)ProviderType).Serialize("Type"),
                CustomDirectory.Serialize("Path"),
                Enabled.Serialize("Enabled"),
                (DefaultSimulator.HasValue ? ((int)DefaultSimulator):-1).Serialize("Sim")
            };

            return(new XElement(name, elem));
        }
Exemple #21
0
 public void Export(CustomDirectory dir, Stream outputStream)
 {
     locker.EnterReadLock();
     try
     {
         ImportHelper.Export(new[] { dir }, outputStream);
     }
     finally
     {
         locker.ExitReadLock();
     }
 }
Exemple #22
0
 public void Import(Site site, CustomDirectory dir, Stream zipStream, bool @override)
 {
     locker.EnterWriteLock();
     try
     {
         ImportHelper.Import(site, dir.PhysicalPath, zipStream, @override);
     }
     finally
     {
         locker.ExitWriteLock();
     }
 }
Exemple #23
0
 public void Export(CustomDirectory dir, Stream outputStream)
 {
     locker.EnterReadLock();
     try
     {
         ImportHelper.Export(new[] { dir }, outputStream);
     }
     finally
     {
         locker.ExitReadLock();
     }
 }
        public void TestChildPhysicalPath()
        {
            string parentDir = "dir1";
            var    site      = new Site("Site1");
            var    parent    = new CustomDirectory(site, new string[] { parentDir });
            string dir2      = "dir2";
            var    child     = new CustomDirectory(parent, dir2);

            string expected1 = Path.Combine(site.PhysicalPath, "files", parentDir, dir2);

            Assert.AreEqual(expected1, child.PhysicalPath, true);
        }
Exemple #25
0
 public virtual void SaveFile(Site site, string fullName, string fileName, Stream fileSream)
 {
     if (!string.IsNullOrEmpty(fullName))
     {
         var             nameArr = CustomDirectoryHelper.SplitFullName(fullName);
         CustomDirectory di      = new CustomDirectory(site, nameArr);
         CustomFile      file    = new CustomFile(di, fileName);
         file.Save(fileSream);
     }
     else
     {
         CustomFile file = new CustomFile(site, fileName);
         file.Save(fileSream);
     }
 }
Exemple #26
0
        /// <summary>
        /// The file URL.
        /// </summary>
        /// <param name="relativeFilePath">The relative file path.</param>
        /// <returns></returns>
        public virtual IHtmlString FileUrl(string relativeFilePath)
        {
            Site       site = this.PageRequestContext.Site;
            var        dir  = Path.GetDirectoryName(relativeFilePath);
            CustomFile file;

            if (string.IsNullOrEmpty(dir))
            {
                file = new CustomFile(site, relativeFilePath);
            }
            else
            {
                CustomDirectory customDir = new CustomDirectory(site, dir).LastVersion();
                file = new CustomFile(customDir, Path.GetFileName(relativeFilePath));
            }
            file = file.LastVersion();
            return(ResourceCDNUrl(file.VirtualPath));
        }
Exemple #27
0
        public virtual void Delete(Site site, string fullName, string fileName)
        {
            var nameArr = CustomDirectoryHelper.SplitFullName(fullName);
            var count   = nameArr.Count();

            if (count <= 1)//0级目录
            {
                //CustomDirectory di = new CustomDirectory(site, nameArr.Take(count - 1).ToArray());
                CustomFile imgFile = new CustomFile(site, fileName);
                imgFile.Delete();
            }
            else
            {
                CustomDirectory di      = new CustomDirectory(site, nameArr.Take(count - 1).ToArray());
                CustomFile      imgFile = new CustomFile(di, fileName);
                imgFile.Delete();
            }
        }
Exemple #28
0
        private void PasteIntoDir(object sender, RoutedEventArgs e)
        {
            CustomDirectory selectedDirectory = (CustomDirectory)trvMenu.SelectedItem;
            MainWindow      mainWindow        = System.Windows.Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
            string          selectedFile      = mainWindow.ctrChildView.selected;
            string          selectedFileName  = Path.GetFileName(selectedFile);
            string          newPath           = Path.Combine(selectedDirectory.Name, selectedFileName);

            File.Copy(selectedFile, newPath);
            mainWindow.ctrChildView.Custom.Items.Add(new CustomFile()
            {
                Name        = selectedFile,
                ShortName   = selectedFileName,
                Size        = new FileInfo(selectedFile).Length / 512 + " KB",
                Type        = Path.GetExtension(selectedFile),
                DateCreated = new FileInfo(selectedFile).CreationTime,
            });
        }
Exemple #29
0
        public string CreateDirectory(string fullName)
        {
            Msg msg = new Msg();

            try
            {
                string          folderName = Request.Form["folderName"];
                var             nameArr    = !string.IsNullOrEmpty(fullName) ? CustomDirectoryHelper.SplitFullName(fullName) : new string[] { };
                CustomDirectory di         = !string.IsNullOrEmpty(fullName) ? new CustomDirectory(this.Site, nameArr) : null;
                Manager.CreateDirectory(this.Site, di, folderName);
                msg.Success = true;
            }
            catch (Exception e)
            {
                msg.Success = false;
                msg.ErrMsg  = e.Message;
            }
            return(msg.ToJSON());
        }
Exemple #30
0
 public virtual ActionResult File(string name)
 {
     var dir = Path.GetDirectoryName(name);
     CustomFile file;
     if (string.IsNullOrEmpty(dir))
     {
         file = new CustomFile(Site, name);
     }
     else
     {
         CustomDirectory customDir = new CustomDirectory(Site, dir).LastVersion();
         file = new CustomFile(customDir, Path.GetFileName(name));
     }
     file = file.LastVersion();
     if (file.Exists())
     {
         SetCache(Response, 2592000, "*");
         return File(file.PhysicalPath, IOUtility.MimeType(file.PhysicalPath));
     }
     return null;
 }
        public virtual ActionResult File(string name)
        {
            var        dir = Path.GetDirectoryName(name);
            CustomFile file;

            if (string.IsNullOrEmpty(dir))
            {
                file = new CustomFile(Site, name);
            }
            else
            {
                CustomDirectory customDir = new CustomDirectory(Site, dir).LastVersion();
                file = new CustomFile(customDir, Path.GetFileName(name));
            }
            file = file.LastVersion();
            if (file.Exists())
            {
                SetCache(Response, 2592000, "*");
                return(File(file.PhysicalPath, IOUtility.MimeType(file.PhysicalPath)));
            }
            return(null);
        }
Exemple #32
0
        private void OnItemSelected(object sender, RoutedEventArgs e)
        {
            TreeViewItem source     = e.OriginalSource as TreeViewItem;
            MainWindow   mainWindow = System.Windows.Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();

            try
            {
                CustomDrive sourceItem = (CustomDrive)source.Header;
                mainWindow.ctrChildView.Custom.Items.Clear();
                foreach (var item in sourceItem.Items)
                {
                    mainWindow.ctrChildView.Custom.Items.Add(item);
                }
            }
            catch (InvalidCastException)
            {
                try
                {
                    CustomDirectory sourceItem = (CustomDirectory)source.Header;
                    CustomItemController = new CustomItemController()
                    {
                        CustomDirectory = sourceItem
                    };
                    var files = CustomItemController.GetCustomFiles(sourceItem.Name);
                    mainWindow.ctrChildView.Custom.Items.Clear();
                    foreach (var item in sourceItem.Items)
                    {
                        mainWindow.ctrChildView.Custom.Items.Add(item);
                    }
                    foreach (var file in files)
                    {
                        mainWindow.ctrChildView.Custom.Items.Add(file);
                    }
                }
                catch (InvalidCastException) { }
            }
        }
Exemple #33
0
        private void OnExpanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem source = e.OriginalSource as TreeViewItem;

            try
            {
                CustomDrive sourceItem = (CustomDrive)source.Header;
                foreach (CustomDirectory dir in sourceItem.Items)
                {
                    dir.ShortName        = dir.Name.Remove(0, dir.Name.LastIndexOf("\\") + 1);
                    CustomItemController = new CustomItemController()
                    {
                        CustomDirectory = dir
                    };
                    CustomItemController.GetCustomDirectories(dir.Name);
                }
            }
            catch (InvalidCastException)
            {
                try
                {
                    CustomDirectory sourceItem = (CustomDirectory)source.Header;
                    foreach (var dir in sourceItem.Items)
                    {
                        if (dir.Type.Equals("File folder"))
                        {
                            CustomItemController = new CustomItemController()
                            {
                                CustomDirectory = (CustomDirectory)dir
                            };
                            CustomItemController.GetCustomDirectories(dir.Name);
                        }
                    }
                }
                catch (InvalidCastException) { }
            }
        }
Exemple #34
0
        private void AddFile()
        {
            try
            {
                MainWindow mainWindow = System.Windows.Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
                CustomItemWithCollection sourceItem      = Custom;
                CustomDirectory          customDirectory = mainWindow.ctrTreeView.trvMenu.SelectedItem as CustomDirectory;
                bool isExist = false;
                foreach (var file in Custom.Items)
                {
                    if (Path.GetFileNameWithoutExtension(file.Name).Equals("New file"))
                    {
                        isExist = true;
                    }
                }

                if (!isExist)
                {
                    string newFilePath = $"{customDirectory.Name}" + @"\New file.txt";
                    File.CreateText(newFilePath);
                    CustomFile item = new CustomFile {
                        Name = newFilePath, ShortName = @"New file.txt", DateCreated = DateTime.Now, Type = Path.GetExtension(newFilePath), Size = new FileInfo(newFilePath).Length / 512 + " KB"
                    };
                    Custom.Items.Add(item);
                }
                else
                {
                    MessageBox.Show("File name already exist", "Alert", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                isExist = false;
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("File name already exist", "Alert", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Exemple #35
0
 /// <summary>
 /// The file URL.
 /// </summary>
 /// <param name="relativeFilePath">The relative file path.</param>
 /// <param name="withCDNResolving">if set to <c>true</c> [with CDN resolving].</param>
 /// <returns></returns>
 public virtual IHtmlString FileUrl(string relativeFilePath, bool withCDNResolving)
 {
     Site site = this.Site;
     var dir = Path.GetDirectoryName(relativeFilePath);
     CustomFile file;
     if (string.IsNullOrEmpty(dir))
     {
         file = new CustomFile(site, relativeFilePath);
     }
     else
     {
         CustomDirectory customDir = new CustomDirectory(site, dir).LastVersion();
         file = new CustomFile(customDir, Path.GetFileName(relativeFilePath));
     }
     file = file.LastVersion();
     if (withCDNResolving)
     {
         return ResourceCDNUrl(file.VirtualPath);
     }
     else
     {
         return new HtmlString(Url.Content(file.VirtualPath));
     }
 }
Exemple #36
0
 public virtual void Import(Site site, CustomDirectory dir, Stream stream, bool @override)
 {
     ((ICustomFileProvider)Provider).Import(site, dir, stream, @override);
 }
Exemple #37
0
 public virtual void Export(CustomDirectory dir, Stream stream)
 {
     ((ICustomFileProvider)Provider).Export(dir, stream);
 }
Exemple #38
0
 public IQueryable<CustomFile> All(CustomDirectory dir)
 {
     return AllEnumerable(dir).AsQueryable();
 }
Exemple #39
0
 public virtual ActionResult Export(string fullName)
 {
     CustomDirectory dir = new CustomDirectory(Site, fullName ?? "");
     var fileName = GetZipFileName(fullName ?? "");
     Response.AttachmentHeader(fileName);
     Manager.Export(dir, Response.OutputStream);
     return null;
 }
Exemple #40
0
        public virtual ActionResult Index(string search, string fullName)
        {
            CustomDirectory di = new CustomDirectory(Site, fullName ?? "");
            var data = Manager.All(di);

            return View(data);
        }
Exemple #41
0
 /// <summary>
 /// The file URL.
 /// </summary>
 /// <param name="relativeFilePath">The relative file path.</param>
 /// <returns></returns>
 public virtual IHtmlString FileUrl(string relativeFilePath)
 {
     Site site = this.PageRequestContext.Site;
     var dir = Path.GetDirectoryName(relativeFilePath);
     CustomFile file;
     if (string.IsNullOrEmpty(dir))
     {
         file = new CustomFile(site, relativeFilePath);
     }
     else
     {
         CustomDirectory customDir = new CustomDirectory(site, dir).LastVersion();
         file = new CustomFile(customDir, Path.GetFileName(relativeFilePath));
     }
     file = file.LastVersion();
     return ResourceCDNUrl(file.VirtualPath);
 }
Exemple #42
0
 public IQueryable <CustomFile> All(CustomDirectory dir)
 {
     return(AllEnumerable(dir).AsQueryable());
 }
Exemple #43
0
 public virtual ActionResult Import(string fullName, bool @override)
 {
     if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
     {
         CustomDirectory dir = new CustomDirectory(Site, fullName ?? "");
         var file = Request.Files["file"];
         Manager.Import(Site, dir, file.InputStream, @override);
     }
     return RedirectToAction("Index", new { fullName = fullName });
 }
Exemple #44
0
 public CustomFile(CustomDirectory dir, string fileName)
     : base(dir.Site, fileName)
 {
     this.Directory = dir;
 }
 public List <string> ProcessFilesFromFolder(string folder)
 {
     return(CustomDirectory.GetFiles(folder, "*.doc|*.docx", SearchOption.AllDirectories));
 }