private dtoContainerQuota CalculateRepositoryMaxSize(String filePath, DiskSettings settings, Boolean overrideQuota, long usedSize = 0) { dtoContainerQuota item = new dtoContainerQuota(); item.UsedSize = usedSize; try { if (!String.IsNullOrEmpty(filePath)) { item.DiskSize = -1; } ulong space = 0; if (!String.IsNullOrEmpty(filePath)) { File.ContentOf.DriveFreeBytes(filePath, out space); item.DiskSize = (long)space; } if (settings != null) { item.Initialize(settings, overrideQuota, usedSize); } } catch (Exception ex) { } return(item); }
/// <summary> /// Instantiate the object. /// </summary> /// <param name="disk">Disk settings.</param> public StorageSettings(DiskSettings disk) { if (disk == null) { throw new ArgumentNullException(nameof(disk)); } Disk = disk; }
static void InitializeClient() { switch (_StorageType) { case StorageType.AwsS3: Console.WriteLine("For S3-compatible storage, endpoint should be of the form http://[hostname]:[port]/"); string endpoint = InputString("Endpoint :", null, true); if (String.IsNullOrEmpty(endpoint)) { _AwsSettings = new AwsSettings( InputString("Access key :", null, false), InputString("Secret key :", null, false), InputString("Region :", "USWest1", false), InputString("Bucket :", null, false) ); } else { _AwsSettings = new AwsSettings( endpoint, InputBoolean("SSL :", true), InputString("Access key :", null, false), InputString("Secret key :", null, false), InputString("Region :", "USWest1", false), InputString("Bucket :", null, false) ); } _Blobs = new Blobs(_AwsSettings); break; case StorageType.Azure: _AzureSettings = new AzureSettings( InputString("Account name :", null, false), InputString("Access key :", null, false), InputString("Endpoint URL :", null, false), InputString("Container :", null, false)); _Blobs = new Blobs(_AzureSettings); break; case StorageType.Disk: _DiskSettings = new DiskSettings( InputString("Directory :", null, false)); _Blobs = new Blobs(_DiskSettings); break; case StorageType.Kvpbase: _KvpbaseSettings = new KvpbaseSettings( InputString("Endpoint URL :", null, false), InputString("User GUID :", null, false), InputString("Container :", null, true), InputString("API key :", null, false)); _Blobs = new Blobs(_KvpbaseSettings); break; } }
private void SaveDiskSetting() { MessageDisplay msgDisplay = CreateMessageDisplay("MaxFileCount", "MaxFileSize", "DiskSpaceSize", "EnableDisk", "AllowFileExtensions", "DefaultViewMode" , "new_MaxFileCount", "new_MaxFileSize", "new_DiskSpaceSize", "new_EnableDisk", "new_AllowFileExtensions", "new_DefaultViewMode"); DiskSettings diskSetting = new DiskSettings(); //diskSetting.Import = new ExceptableItem_bool().GetExceptable("Import", msgDisplay); //diskSetting.Export = new ExceptableItem_bool().GetExceptable("Export", msgDisplay); diskSetting.MaxFileCount = new ExceptableItem_Int_MoreThenZero().GetExceptable("MaxFileCount", msgDisplay); diskSetting.MaxFileSize = new ExceptableItem_FileSize().GetExceptable("MaxFileSize", msgDisplay); diskSetting.DiskSpaceSize = new ExceptableItem_FileSize().GetExceptable("DiskSpaceSize", msgDisplay); diskSetting.EnableDisk = _Request.Get <bool>("EnableDisk", Method.Post, false); diskSetting.AllowFileExtensions = new ExceptableItem_ExtensionList().GetExceptable("AllowFileExtensions", msgDisplay); diskSetting.DefaultViewMode = new ExceptableItem_Enum <FileViewMode>().GetExceptable("DefaultViewMode", msgDisplay); if (!msgDisplay.HasAnyError()) { SettingManager.SaveSettings(diskSetting); JumpTo("app/setting-netdisk.aspx?success=1"); } }
private dtoFolderSize GetRepositoryAvailabilityInfo(String filePath, DiskSettings diskSettings, List <liteRepositoryItem> items, IEnumerable <dtoDisplayRepositoryItem> allItems) { dtoFolderSize rFolder = new dtoFolderSize() { FolderType = FolderType.none, IdFolder = 0 }; long viewSize = 0; long usedSize = 0; long versionSize = 0; long deletedSize = 0; long childrenSize = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.IsUserAvailable && i.Type == ItemType.Folder).Select(i => i.Size).DefaultIfEmpty().Sum(); if (items.Any(i => i.Type != ItemType.Folder && i.Type != ItemType.Link)) { usedSize = items.Where(i => i.Type != ItemType.Folder && i.Type != ItemType.Link).Select(i => i.Size + i.VersionsSize).Sum(); } if (allItems.Any(i => i.Deleted == BaseStatusDeleted.None && i.IsUserAvailable && i.Type != ItemType.Folder && i.Type != ItemType.Link)) { viewSize = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.IsUserAvailable && i.Type != ItemType.Folder && i.Type != ItemType.Link).Select(i => i.Size).Sum(); } rFolder.Items.Add(new FolderSizeItem() { Number = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.IsUserAvailable && i.Type == ItemType.Folder).Count(), Type = FolderSizeItemType.folder }); rFolder.Items.Add(new FolderSizeItem() { Number = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.Type != ItemType.Folder && i.Type != ItemType.Link).Count(), Type = FolderSizeItemType.file, Size = viewSize }); viewSize += childrenSize; if (allItems.Any(i => i.Deleted == BaseStatusDeleted.None && i.Type == ItemType.Link)) { rFolder.Items.Add(new FolderSizeItem() { Number = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.Type == ItemType.Link).Count(), Type = FolderSizeItemType.link }); } if (allItems.Any(i => i.Deleted != BaseStatusDeleted.None)) { deletedSize = allItems.Where(i => i.Deleted == BaseStatusDeleted.Manual).Select(i => i.Size + i.VersionsSize).Sum(); rFolder.Items.Add(new FolderSizeItem() { Number = allItems.Where(i => i.Deleted != BaseStatusDeleted.None).Count(), Type = FolderSizeItemType.deleted, Size = deletedSize }); } if (allItems.Any(i => i.Deleted == BaseStatusDeleted.None && i.HasVersions)) { versionSize = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.Type != ItemType.Folder && i.HasVersions).Select(i => i.VersionsSize).Sum(); rFolder.Items.Add(new FolderSizeItem() { Number = allItems.Where(i => i.Deleted == BaseStatusDeleted.None && i.Type != ItemType.Folder && i.HasVersions).Count(), Type = FolderSizeItemType.version, Size = versionSize }); } if ((viewSize + versionSize + deletedSize) < usedSize) { rFolder.Items.Add(new FolderSizeItem() { Number = items.Where(i => !allItems.Any(it => it.Id == i.Id)).Count(), Type = FolderSizeItemType.unavailableItems, Size = usedSize - (viewSize + versionSize + deletedSize) }); } if (rFolder.Items.Any()) { rFolder.Size = rFolder.Items.Select(i => i.Size).DefaultIfEmpty(0).Sum(); } rFolder.Quota = CalculateRepositoryMaxSize(filePath, diskSettings, IsValidAdministrator(UC.CurrentUserID), rFolder.Size); rFolder.UploadAvailable = (rFolder.Quota.AvailableSize == -1 || rFolder.FreeSpace > 0); if (rFolder.OverSize > 0) { rFolder.Items.Add(new FolderSizeItem() { Number = 0, Type = FolderSizeItemType.overflow, Size = rFolder.OverSize }); } if (rFolder.UploadAvailable) { rFolder.Items.Add(new FolderSizeItem() { Number = 0, Size = rFolder.FreeSpace, Type = FolderSizeItemType.freespace }); } else if (rFolder.Quota.HasAllowedSpace()) { rFolder.UploadAvailable = true; } rFolder.SetPercentage(); return(rFolder); }
private dtoFolderTreeItem CreateRootFolderTreeItem(String filePath, long idCurrentFolder, IEnumerable <RepositoryItem> items, DiskSettings diskSpace, ModuleRepository permissions) { dtoFolderTreeItem root = new dtoFolderTreeItem() { Id = 0, IsHome = true, Name = "", IsCurrent = (idCurrentFolder == 0) }; if (items.Any(i => i.Type != ItemType.Link && i.Deleted == BaseStatusDeleted.None)) { root.Size = items.Where(i => i.Type != ItemType.Link && i.Deleted == BaseStatusDeleted.None).Select(i => i.Size).Sum(); } if (items.Any(i => i.Deleted != BaseStatusDeleted.None)) { root.DeletedSize = items.Where(i => i.Deleted == BaseStatusDeleted.Manual).Select(i => i.Size + i.VersionsSize).Sum(); } if (items.Any(i => i.Type == ItemType.Folder && i.Deleted == BaseStatusDeleted.None && i.DeletedSize > 0)) { root.DeletedSize += items.Where(i => i.Type == ItemType.Folder && i.Deleted == BaseStatusDeleted.None && i.DeletedSize > 0).Select(i => i.DeletedSize).Sum(); } if (items.Any(i => i.Deleted == BaseStatusDeleted.None && i.HasVersions)) { root.VersionsSize = items.Where(i => i.Deleted == BaseStatusDeleted.None && i.Type != ItemType.Folder && i.HasVersions).Select(i => i.VersionsSize).Sum(); } root.Quota = CalculateRepositoryMaxSize(filePath, diskSpace, IsValidAdministrator(UC.CurrentUserID), root.FullSize); root.UploadAvailable = root.MoveIntoAvailable && (permissions.Administration || permissions.ManageItems || permissions.UploadFile || permissions.EditOthersFiles); return(root); }