partial commit enterprise storage
This commit is contained in:
parent
8b9677c92c
commit
c912242fa2
4 changed files with 138 additions and 2 deletions
|
@ -28,6 +28,7 @@
|
|||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using WebsitePanel.Providers.OS;
|
||||
|
||||
namespace WebsitePanel.Providers.EnterpriseStorage
|
||||
{
|
||||
|
@ -36,6 +37,10 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
|||
/// </summary>
|
||||
public interface IEnterpriseStorage
|
||||
{
|
||||
|
||||
SystemFile[] GetFolders(string organizationId);
|
||||
SystemFile GetFolder(string organizationId, string folder);
|
||||
void CreateFolder(string organizationId, string folder);
|
||||
void DeleteFolder(string organizationId, string folder);
|
||||
void SetFolderQuota(string organizationId, string folder, long quota);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ namespace WebsitePanel.Providers.OS
|
|||
private DateTime changed;
|
||||
private bool isDirectory;
|
||||
private long size;
|
||||
private long quota;
|
||||
private bool isEmpty;
|
||||
|
||||
public SystemFile()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Microsoft.Win32;
|
||||
|
@ -21,6 +22,52 @@ namespace WebsitePanel.Providers.EnterpriseStorage.Windows2012
|
|||
#endregion
|
||||
|
||||
|
||||
#region Folders
|
||||
public SystemFile[] GetFolders(string organizationId)
|
||||
{
|
||||
|
||||
ArrayList items = new ArrayList();
|
||||
DirectoryInfo root = new DirectoryInfo(string.Format("{0}\\{1}", UsersHome, organizationId));
|
||||
|
||||
// get directories
|
||||
DirectoryInfo[] dirs = root.GetDirectories();
|
||||
foreach (DirectoryInfo dir in dirs)
|
||||
{
|
||||
string fullName = System.IO.Path.Combine(string.Format("{0}\\{1}", UsersHome, organizationId), dir.Name);
|
||||
SystemFile fi = new SystemFile(dir.Name, fullName, true, 0, dir.CreationTime, dir.LastWriteTime);
|
||||
items.Add(fi);
|
||||
|
||||
// check if the directory is empty
|
||||
fi.IsEmpty = (Directory.GetFileSystemEntries(fullName).Length == 0);
|
||||
}
|
||||
|
||||
return (SystemFile[])items.ToArray(typeof(SystemFile));
|
||||
}
|
||||
|
||||
public SystemFile GetFolder(string organizationId, string folder)
|
||||
{
|
||||
DirectoryInfo root = new DirectoryInfo(string.Format("{0}\\{1}\\{2}", UsersHome, organizationId, folder));
|
||||
string fullName = string.Format("{0}\\{1}\\{2}", UsersHome, organizationId, folder);
|
||||
return new SystemFile(root.Name, fullName, true, 0, root.CreationTime, root.LastWriteTime);
|
||||
}
|
||||
|
||||
public void CreateFolder(string organizationId, string folder)
|
||||
{
|
||||
FileUtils.CreateDirectory(string.Format("{0}\\{1}\\{2}", UsersHome, organizationId, folder));
|
||||
}
|
||||
|
||||
public void DeleteFolder(string organizationId, string folder)
|
||||
{
|
||||
FileUtils.DeleteDirectoryRecursive(string.Format("{0}\\{1}\\{2}", UsersHome, organizationId, folder));
|
||||
}
|
||||
|
||||
public void SetFolderQuota(string organizationId, string folder, long quota)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region HostingServiceProvider methods
|
||||
public override string[] Install()
|
||||
{
|
||||
|
|
|
@ -37,6 +37,7 @@ using Microsoft.Web.Services3;
|
|||
|
||||
using WebsitePanel.Providers;
|
||||
using WebsitePanel.Providers.EnterpriseStorage;
|
||||
using WebsitePanel.Providers.OS;
|
||||
using WebsitePanel.Server.Utils;
|
||||
|
||||
namespace WebsitePanel.Server
|
||||
|
@ -50,12 +51,94 @@ namespace WebsitePanel.Server
|
|||
[ToolboxItem(false)]
|
||||
public class EnterpriseStorage : HostingServiceProviderWebService, IEnterpriseStorage
|
||||
{
|
||||
private IEnterpriseStorage RDSProvider
|
||||
private IEnterpriseStorage EnterpriseStorageProvider
|
||||
{
|
||||
get { return (IEnterpriseStorage)Provider; }
|
||||
}
|
||||
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public SystemFile[] GetFolders(string organizationId)
|
||||
{
|
||||
try
|
||||
{
|
||||
Log.WriteStart("'{0}' GetFolders", ProviderSettings.ProviderName);
|
||||
SystemFile[] result = EnterpriseStorageProvider.GetFolders(organizationId);
|
||||
Log.WriteEnd("'{0}' GetFolders", ProviderSettings.ProviderName);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(String.Format("'{0}' GetFolders", ProviderSettings.ProviderName), ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public SystemFile GetFolder(string organizationId, string folder)
|
||||
{
|
||||
try
|
||||
{
|
||||
Log.WriteStart("'{0}' GetFolder", ProviderSettings.ProviderName);
|
||||
SystemFile result = EnterpriseStorageProvider.GetFolder(organizationId, folder);
|
||||
Log.WriteEnd("'{0}' GetFolder", ProviderSettings.ProviderName);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(String.Format("'{0}' GetFolder", ProviderSettings.ProviderName), ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public void CreateFolder(string organizationId, string folder)
|
||||
{
|
||||
try
|
||||
{
|
||||
Log.WriteStart("'{0}' CreateFolder", ProviderSettings.ProviderName);
|
||||
EnterpriseStorageProvider.CreateFolder(organizationId, folder);
|
||||
Log.WriteEnd("'{0}' CreateFolder", ProviderSettings.ProviderName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(String.Format("'{0}' CreateFolder", ProviderSettings.ProviderName), ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public void DeleteFolder(string organizationId, string folder)
|
||||
{
|
||||
try
|
||||
{
|
||||
Log.WriteStart("'{0}' DeleteFolder", ProviderSettings.ProviderName);
|
||||
EnterpriseStorageProvider.DeleteFolder(organizationId, folder);
|
||||
Log.WriteEnd("'{0}' DeleteFolder", ProviderSettings.ProviderName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(String.Format("'{0}' DeleteFolder", ProviderSettings.ProviderName), ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[WebMethod, SoapHeader("settings")]
|
||||
public void SetFolderQuota(string organizationId, string folder, long quota)
|
||||
{
|
||||
try
|
||||
{
|
||||
Log.WriteStart("'{0}' SetFolderQuota", ProviderSettings.ProviderName);
|
||||
EnterpriseStorageProvider.SetFolderQuota(organizationId, folder,quota);
|
||||
Log.WriteEnd("'{0}' SetFolderQuota", ProviderSettings.ProviderName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(String.Format("'{0}' SetFolderQuota", ProviderSettings.ProviderName), ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue