This commit is contained in:
Virtuworks 2015-03-02 12:11:11 -05:00
commit 232895f621
42 changed files with 2627 additions and 126 deletions

View file

@ -4543,6 +4543,69 @@ namespace WebsitePanel.EnterpriseServer
);
}
public static void DeleteAllEnterpriseFolderOwaUsers(int itemId, int folderId)
{
SqlHelper.ExecuteNonQuery(
ConnectionString,
CommandType.StoredProcedure,
"DeleteAllEnterpriseFolderOwaUsers",
new SqlParameter("@ItemID", itemId),
new SqlParameter("@FolderID", folderId)
);
}
public static int AddEnterpriseFolderOwaUser(int itemId, int folderId, int accountId)
{
SqlParameter id = new SqlParameter("@ESOwsaUserId", SqlDbType.Int);
id.Direction = ParameterDirection.Output;
SqlHelper.ExecuteNonQuery(
ConnectionString,
CommandType.StoredProcedure,
"AddEnterpriseFolderOwaUser",
id,
new SqlParameter("@ItemID", itemId),
new SqlParameter("@FolderID", folderId),
new SqlParameter("@AccountId", accountId)
);
// read identity
return Convert.ToInt32(id.Value);
}
public static IDataReader GetEnterpriseFolderOwaUsers(int itemId, int folderId)
{
return SqlHelper.ExecuteReader(
ConnectionString,
CommandType.StoredProcedure,
"GetEnterpriseFolderOwaUsers",
new SqlParameter("@ItemID", itemId),
new SqlParameter("@FolderID", folderId)
);
}
public static IDataReader GetEnterpriseFolderId(int itemId, string folderName)
{
return SqlHelper.ExecuteReader(
ConnectionString,
CommandType.StoredProcedure,
"GetEnterpriseFolderId",
new SqlParameter("@ItemID", itemId),
new SqlParameter("@FolderName", folderName)
);
}
public static IDataReader GetUserEnterpriseFolderWithOwaEditPermission(int itemId, int accountId)
{
return SqlHelper.ExecuteReader(
ConnectionString,
CommandType.StoredProcedure,
"GetUserEnterpriseFolderWithOwaEditPermission",
new SqlParameter("@ItemID", itemId),
new SqlParameter("@AccountID", accountId)
);
}
#endregion
#region Support Service Levels

View file

@ -152,6 +152,16 @@ namespace WebsitePanel.EnterpriseServer
StartESBackgroundTaskInternal("SET_ENTERPRISE_FOLDER_SETTINGS", itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType);
}
public static void SetESGeneralSettings(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
{
SetESGeneralSettingsInternal("SET_ENTERPRISE_FOLDER_GENERAL_SETTINGS", itemId, folder, directoyBrowsingEnabled, quota, quotaType);
}
public static void SetESFolderPermissionSettings(int itemId, SystemFile folder, ESPermission[] permissions)
{
SetESFolderPermissionSettingsInternal("SET_ENTERPRISE_FOLDER_GENERAL_SETTINGS", itemId, folder, permissions);
}
public static int AddWebDavAccessToken(WebDavAccessToken accessToken)
{
return DataProvider.AddWebDavAccessToken(accessToken);
@ -257,6 +267,69 @@ namespace WebsitePanel.EnterpriseServer
return rootFolders;
}
protected static void SetESGeneralSettingsInternal(string taskName, int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
{
// load organization
var org = OrganizationController.GetOrganization(itemId);
try
{
TaskManager.StartTask("ENTERPRISE_STORAGE", taskName, org.PackageId);
EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota, quotaType);
EnterpriseStorageController.SetDirectoryBrowseEnabled(itemId, folder.Url, directoyBrowsingEnabled);
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex, "Error executing enterprise storage background task");
}
finally
{
// complete task
try
{
TaskManager.CompleteTask();
}
catch (Exception)
{
}
}
}
protected static void SetESFolderPermissionSettingsInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions)
{
// load organization
var org = OrganizationController.GetOrganization(itemId);
new Thread(() =>
{
try
{
TaskManager.StartTask("ENTERPRISE_STORAGE", taskName, org.PackageId);
EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions);
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex, "Error executing enterprise storage background task");
}
finally
{
// complete task
try
{
TaskManager.CompleteTask();
}
catch (Exception)
{
}
}
}).Start();
}
protected static void StartESBackgroundTaskInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
{
// load organization
@ -1265,6 +1338,87 @@ namespace WebsitePanel.EnterpriseServer
return null;
}
public static OrganizationUser[] GetFolderOwaAccounts(int itemId, string folderName)
{
try
{
var folderId = GetFolderId(itemId, folderName);
var users = ObjectUtils.CreateListFromDataReader<OrganizationUser>(DataProvider.GetEnterpriseFolderOwaUsers(itemId, folderId));
return users.ToArray();
}
catch (Exception ex)
{
throw ex;
}
}
public static void SetFolderOwaAccounts(int itemId, string folderName, OrganizationUser[] users)
{
try
{
var folderId = GetFolderId(itemId, folderName);
DataProvider.DeleteAllEnterpriseFolderOwaUsers(itemId, folderId);
foreach (var user in users)
{
DataProvider.AddEnterpriseFolderOwaUser(itemId, folderId, user.AccountId);
}
}
catch (Exception ex)
{
throw ex;
}
}
protected static int GetFolderId(int itemId, string folderName)
{
try
{
GetFolder(itemId, folderName);
var dataReader = DataProvider.GetEnterpriseFolderId(itemId, folderName);
while (dataReader.Read())
{
return (int)dataReader[0];
}
return -1;
}
catch (Exception ex)
{
throw ex;
}
}
public static List<string> GetUserEnterpriseFolderWithOwaEditPermission(int itemId, List<int> accountIds)
{
try
{
var result = new List<string>();
foreach (var accountId in accountIds)
{
var reader = DataProvider.GetUserEnterpriseFolderWithOwaEditPermission(itemId, accountId);
while (reader.Read())
{
result.Add(Convert.ToString(reader["FolderName"]));
}
}
return result.Distinct().ToList();
}
catch (Exception ex)
{
throw ex;
}
}
#region WebDav portal
public static string GetWebDavPortalUserSettingsByAccountId(int accountId)