Merge Wsp2013 Fork into Main
This commit is contained in:
commit
f2032d5716
84 changed files with 14799 additions and 12456 deletions
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -15,9 +15,9 @@ Imports System
|
||||||
Imports System.Reflection
|
Imports System.Reflection
|
||||||
Imports System.Runtime.CompilerServices
|
Imports System.Runtime.CompilerServices
|
||||||
Imports System.Runtime.InteropServices
|
Imports System.Runtime.InteropServices
|
||||||
<Assembly: AssemblyCompany("Outercurve Foundation"), _
|
<Assembly: AssemblyCompany("Outercurve Foundation"), _
|
||||||
Assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation."), _
|
Assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation."), _
|
||||||
Assembly: AssemblyVersion("2.0.0.1"), _
|
Assembly: AssemblyVersion("2.0.0.1"), _
|
||||||
Assembly: AssemblyFileVersion("2.0.0.1"), _
|
Assembly: AssemblyFileVersion("2.0.0.1"), _
|
||||||
Assembly: AssemblyInformationalVersion("2.0.0")>
|
Assembly: AssemblyInformationalVersion("2.0.0")>
|
||||||
|
|
||||||
|
|
|
@ -114,6 +114,8 @@ order by rg.groupOrder
|
||||||
public const string EXCHANGE2007_MAXRECEIVEMESSAGESIZEKB = "Exchange2007.MaxReceiveMessageSizeKB"; // Max Receive Message Size
|
public const string EXCHANGE2007_MAXRECEIVEMESSAGESIZEKB = "Exchange2007.MaxReceiveMessageSizeKB"; // Max Receive Message Size
|
||||||
public const string EXCHANGE2007_ISCONSUMER = "Exchange2007.IsConsumer"; // Is Consumer Organization
|
public const string EXCHANGE2007_ISCONSUMER = "Exchange2007.IsConsumer"; // Is Consumer Organization
|
||||||
public const string EXCHANGE2007_ENABLEDPLANSEDITING = "Exchange2007.EnablePlansEditing"; // Enabled plans editing
|
public const string EXCHANGE2007_ENABLEDPLANSEDITING = "Exchange2007.EnablePlansEditing"; // Enabled plans editing
|
||||||
|
public const string EXCHANGE2007_ALLOWLITIGATIONHOLD = "Exchange2007.AllowLitigationHold";
|
||||||
|
public const string EXCHANGE2007_RECOVERABLEITEMSSPACE = "Exchange2007.RecoverableItemsSpace";
|
||||||
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
|
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
|
||||||
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
|
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
|
||||||
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size
|
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size
|
||||||
|
|
|
@ -1238,6 +1238,17 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
this.ExecuteSyncActionsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
this.ExecuteSyncActionsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CO Changes
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/ApplyEnableHardQuotaFeature", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public int ApplyEnableHardQuotaFeature(int packageId)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("ApplyEnableHardQuotaFeature", new object[] {
|
||||||
|
packageId });
|
||||||
|
return ((int)(results[0]));
|
||||||
|
}
|
||||||
|
//END
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
|
|
|
@ -463,6 +463,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CO Changes
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CheckFileServicesInstallation", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public bool CheckFileServicesInstallation(int serviceId)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("CheckFileServicesInstallation", new object[] {
|
||||||
|
serviceId});
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
//END
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState)
|
public new void CancelAsync(object userState)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1208,9 +1208,11 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteWebSite", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteWebSite", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public int DeleteWebSite(int siteItemId) {
|
public int DeleteWebSite(int siteItemId, bool deleteWebsiteDirectory)
|
||||||
|
{
|
||||||
object[] results = this.Invoke("DeleteWebSite", new object[] {
|
object[] results = this.Invoke("DeleteWebSite", new object[] {
|
||||||
siteItemId});
|
siteItemId,
|
||||||
|
deleteWebsiteDirectory});
|
||||||
return ((int)(results[0]));
|
return ((int)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Configuration;
|
using System.Configuration;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
|
||||||
namespace WebsitePanel.EnterpriseServer
|
namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
|
@ -39,9 +40,32 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CryptoUtils
|
public class CryptoUtils
|
||||||
{
|
{
|
||||||
|
static string EnterpriseServerRegistryPath = "SOFTWARE\\WebsitePanel\\EnterpriseServer";
|
||||||
|
|
||||||
public static string CryptoKey
|
public static string CryptoKey
|
||||||
{
|
{
|
||||||
get { return ConfigurationManager.AppSettings["WebsitePanel.CryptoKey"]; }
|
get
|
||||||
|
{
|
||||||
|
string Key = ConfigurationManager.AppSettings["WebsitePanel.AltCryptoKey"];
|
||||||
|
string value = string.Empty;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(Key))
|
||||||
|
{
|
||||||
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
RegistryKey rk = root.OpenSubKey(EnterpriseServerRegistryPath);
|
||||||
|
if (rk != null)
|
||||||
|
{
|
||||||
|
value = (string)rk.GetValue(Key, null);
|
||||||
|
rk.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(value))
|
||||||
|
return value;
|
||||||
|
else
|
||||||
|
return ConfigurationManager.AppSettings["WebsitePanel.CryptoKey"];
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool EncryptionEnabled
|
public static bool EncryptionEnabled
|
||||||
|
|
|
@ -34,6 +34,7 @@ using System.Text.RegularExpressions;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using Microsoft.ApplicationBlocks.Data;
|
using Microsoft.ApplicationBlocks.Data;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
|
||||||
namespace WebsitePanel.EnterpriseServer
|
namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
|
@ -42,11 +43,31 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class DataProvider
|
public static class DataProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
|
static string EnterpriseServerRegistryPath = "SOFTWARE\\WebsitePanel\\EnterpriseServer";
|
||||||
|
|
||||||
private static string ConnectionString
|
private static string ConnectionString
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return ConfigurationManager.ConnectionStrings["EnterpriseServer"].ConnectionString;
|
string ConnectionKey = ConfigurationManager.AppSettings["WebsitePanel.AltConnectionString"];
|
||||||
|
string value = string.Empty;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(ConnectionKey))
|
||||||
|
{
|
||||||
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
RegistryKey rk = root.OpenSubKey(EnterpriseServerRegistryPath);
|
||||||
|
if (rk != null)
|
||||||
|
{
|
||||||
|
value = (string)rk.GetValue(ConnectionKey, null);
|
||||||
|
rk.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(value))
|
||||||
|
return value;
|
||||||
|
else
|
||||||
|
return ConfigurationManager.ConnectionStrings["EnterpriseServer"].ConnectionString;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2512,7 +2533,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
#region Exchange Mailbox Plans
|
#region Exchange Mailbox Plans
|
||||||
public static int AddExchangeMailboxPlan(int itemID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
|
public static int AddExchangeMailboxPlan(int itemID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
|
||||||
bool isDefault, int issueWarningPct, int keepDeletedItemsDays, int mailboxSizeMB, int maxReceiveMessageSizeKB, int maxRecipients,
|
bool isDefault, int issueWarningPct, int keepDeletedItemsDays, int mailboxSizeMB, int maxReceiveMessageSizeKB, int maxRecipients,
|
||||||
int maxSendMessageSizeKB, int prohibitSendPct, int prohibitSendReceivePct, bool hideFromAddressBook, int mailboxPlanType)
|
int maxSendMessageSizeKB, int prohibitSendPct, int prohibitSendReceivePct, bool hideFromAddressBook, int mailboxPlanType,
|
||||||
|
bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
{
|
{
|
||||||
SqlParameter outParam = new SqlParameter("@MailboxPlanId", SqlDbType.Int);
|
SqlParameter outParam = new SqlParameter("@MailboxPlanId", SqlDbType.Int);
|
||||||
outParam.Direction = ParameterDirection.Output;
|
outParam.Direction = ParameterDirection.Output;
|
||||||
|
@ -2539,7 +2561,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@ProhibitSendPct", prohibitSendPct),
|
new SqlParameter("@ProhibitSendPct", prohibitSendPct),
|
||||||
new SqlParameter("@ProhibitSendReceivePct", prohibitSendReceivePct),
|
new SqlParameter("@ProhibitSendReceivePct", prohibitSendReceivePct),
|
||||||
new SqlParameter("@HideFromAddressBook", hideFromAddressBook),
|
new SqlParameter("@HideFromAddressBook", hideFromAddressBook),
|
||||||
new SqlParameter("@MailboxPlanType", mailboxPlanType)
|
new SqlParameter("@MailboxPlanType", mailboxPlanType),
|
||||||
|
new SqlParameter("@AllowLitigationHold",enabledLitigationHold),
|
||||||
|
new SqlParameter("@RecoverableItemsWarningPct", recoverabelItemsSpace),
|
||||||
|
new SqlParameter("@RecoverableItemsSpace",recoverabelItemsWarning)
|
||||||
);
|
);
|
||||||
|
|
||||||
return Convert.ToInt32(outParam.Value);
|
return Convert.ToInt32(outParam.Value);
|
||||||
|
@ -2549,7 +2574,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void UpdateExchangeMailboxPlan(int mailboxPlanID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
|
public static void UpdateExchangeMailboxPlan(int mailboxPlanID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
|
||||||
bool isDefault, int issueWarningPct, int keepDeletedItemsDays, int mailboxSizeMB, int maxReceiveMessageSizeKB, int maxRecipients,
|
bool isDefault, int issueWarningPct, int keepDeletedItemsDays, int mailboxSizeMB, int maxReceiveMessageSizeKB, int maxRecipients,
|
||||||
int maxSendMessageSizeKB, int prohibitSendPct, int prohibitSendReceivePct, bool hideFromAddressBook, int mailboxPlanType)
|
int maxSendMessageSizeKB, int prohibitSendPct, int prohibitSendReceivePct, bool hideFromAddressBook, int mailboxPlanType,
|
||||||
|
bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(
|
SqlHelper.ExecuteNonQuery(
|
||||||
ConnectionString,
|
ConnectionString,
|
||||||
|
@ -2572,7 +2598,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@ProhibitSendPct", prohibitSendPct),
|
new SqlParameter("@ProhibitSendPct", prohibitSendPct),
|
||||||
new SqlParameter("@ProhibitSendReceivePct", prohibitSendReceivePct),
|
new SqlParameter("@ProhibitSendReceivePct", prohibitSendReceivePct),
|
||||||
new SqlParameter("@HideFromAddressBook", hideFromAddressBook),
|
new SqlParameter("@HideFromAddressBook", hideFromAddressBook),
|
||||||
new SqlParameter("@MailboxPlanType", mailboxPlanType)
|
new SqlParameter("@MailboxPlanType", mailboxPlanType),
|
||||||
|
new SqlParameter("@AllowLitigationHold", enabledLitigationHold),
|
||||||
|
new SqlParameter("@RecoverableItemsWarningPct", recoverabelItemsSpace),
|
||||||
|
new SqlParameter("@RecoverableItemsSpace", recoverabelItemsWarning)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1709,6 +1709,25 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int maxRecoverableItemsSpace = -1;
|
||||||
|
int quotaRecoverableItemsUsed = 0;
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE)
|
||||||
|
&& cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue > 0)
|
||||||
|
{
|
||||||
|
maxRecoverableItemsSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue;
|
||||||
|
quotaRecoverableItemsUsed = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaUsedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (maxRecoverableItemsSpace != -1)
|
||||||
|
{
|
||||||
|
if (plan.RecoverableItemsSpace == -1)
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
|
||||||
|
if ((quotaRecoverableItemsUsed + plan.RecoverableItemsSpace) > (maxRecoverableItemsSpace))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//GetServiceSettings
|
//GetServiceSettings
|
||||||
StringDictionary primSettings = ServerController.GetServiceSettings(exchangeServiceId);
|
StringDictionary primSettings = ServerController.GetServiceSettings(exchangeServiceId);
|
||||||
|
|
||||||
|
@ -1729,7 +1748,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
plan.MaxSendMessageSizeKB,
|
plan.MaxSendMessageSizeKB,
|
||||||
plan.MaxReceiveMessageSizeKB,
|
plan.MaxReceiveMessageSizeKB,
|
||||||
plan.HideFromAddressBook,
|
plan.HideFromAddressBook,
|
||||||
Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue));
|
Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue),
|
||||||
|
plan.AllowLitigationHold,
|
||||||
|
plan.RecoverableItemsSpace != -1 ? (plan.RecoverableItemsSpace * 1024) : -1,
|
||||||
|
plan.RecoverableItemsSpace != -1 ? (((long)plan.RecoverableItemsWarningPct * (long)plan.RecoverableItemsSpace * 1024) / 100) : -1);
|
||||||
|
|
||||||
MailboxManagerActions pmmActions = MailboxManagerActions.GeneralSettings
|
MailboxManagerActions pmmActions = MailboxManagerActions.GeneralSettings
|
||||||
| MailboxManagerActions.MailFlowSettings
|
| MailboxManagerActions.MailFlowSettings
|
||||||
|
@ -2653,6 +2675,24 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int maxRecoverableItemsSpace = -1;
|
||||||
|
int quotaRecoverableItemsUsed = 0;
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE)
|
||||||
|
&& cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue > 0)
|
||||||
|
{
|
||||||
|
maxRecoverableItemsSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue;
|
||||||
|
quotaRecoverableItemsUsed = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaUsedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (maxRecoverableItemsSpace != -1)
|
||||||
|
{
|
||||||
|
if (plan.RecoverableItemsSpace == -1)
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
|
||||||
|
if ((quotaRecoverableItemsUsed + plan.RecoverableItemsSpace) > (maxRecoverableItemsSpace))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
}
|
||||||
|
|
||||||
// get mailbox settings
|
// get mailbox settings
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
@ -2671,7 +2711,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
plan.KeepDeletedItemsDays,
|
plan.KeepDeletedItemsDays,
|
||||||
plan.MaxRecipients,
|
plan.MaxRecipients,
|
||||||
plan.MaxSendMessageSizeKB,
|
plan.MaxSendMessageSizeKB,
|
||||||
plan.MaxReceiveMessageSizeKB);
|
plan.MaxReceiveMessageSizeKB,
|
||||||
|
plan.AllowLitigationHold,
|
||||||
|
plan.RecoverableItemsSpace != -1 ? (plan.RecoverableItemsSpace * 1024) : -1,
|
||||||
|
plan.RecoverableItemsSpace != -1 ? (((long)plan.RecoverableItemsWarningPct * (long)plan.RecoverableItemsSpace * 1024) / 100) : -1);
|
||||||
|
|
||||||
DataProvider.SetExchangeAccountMailboxPlan(accountId, mailboxPlanId);
|
DataProvider.SetExchangeAccountMailboxPlan(accountId, mailboxPlanId);
|
||||||
|
|
||||||
|
@ -2835,11 +2878,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
mailboxPlan.MaxRecipients = cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue;
|
mailboxPlan.MaxRecipients = cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue;
|
||||||
|
|
||||||
if (Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue)) mailboxPlan.HideFromAddressBook = true;
|
if (Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue)) mailboxPlan.HideFromAddressBook = true;
|
||||||
|
|
||||||
|
mailboxPlan.AllowLitigationHold = mailboxPlan.AllowLitigationHold & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ALLOWLITIGATIONHOLD].QuotaAllocatedValue);
|
||||||
|
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue != -1)
|
||||||
|
if (mailboxPlan.RecoverableItemsSpace > cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.RecoverableItemsSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return DataProvider.AddExchangeMailboxPlan(itemID, mailboxPlan.MailboxPlan, mailboxPlan.EnableActiveSync, mailboxPlan.EnableIMAP, mailboxPlan.EnableMAPI, mailboxPlan.EnableOWA, mailboxPlan.EnablePOP,
|
return DataProvider.AddExchangeMailboxPlan(itemID, mailboxPlan.MailboxPlan, mailboxPlan.EnableActiveSync, mailboxPlan.EnableIMAP, mailboxPlan.EnableMAPI, mailboxPlan.EnableOWA, mailboxPlan.EnablePOP,
|
||||||
mailboxPlan.IsDefault, mailboxPlan.IssueWarningPct, mailboxPlan.KeepDeletedItemsDays, mailboxPlan.MailboxSizeMB, mailboxPlan.MaxReceiveMessageSizeKB, mailboxPlan.MaxRecipients,
|
mailboxPlan.IsDefault, mailboxPlan.IssueWarningPct, mailboxPlan.KeepDeletedItemsDays, mailboxPlan.MailboxSizeMB, mailboxPlan.MaxReceiveMessageSizeKB, mailboxPlan.MaxRecipients,
|
||||||
mailboxPlan.MaxSendMessageSizeKB, mailboxPlan.ProhibitSendPct, mailboxPlan.ProhibitSendReceivePct, mailboxPlan.HideFromAddressBook, mailboxPlan.MailboxPlanType);
|
mailboxPlan.MaxSendMessageSizeKB, mailboxPlan.ProhibitSendPct, mailboxPlan.ProhibitSendReceivePct, mailboxPlan.HideFromAddressBook, mailboxPlan.MailboxPlanType,
|
||||||
|
mailboxPlan.AllowLitigationHold, mailboxPlan.RecoverableItemsSpace, mailboxPlan.RecoverableItemsWarningPct);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -2897,11 +2947,19 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
mailboxPlan.MaxRecipients = cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue;
|
mailboxPlan.MaxRecipients = cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue;
|
||||||
|
|
||||||
if (Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue)) mailboxPlan.HideFromAddressBook = true;
|
if (Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue)) mailboxPlan.HideFromAddressBook = true;
|
||||||
|
|
||||||
|
mailboxPlan.AllowLitigationHold = mailboxPlan.AllowLitigationHold & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ALLOWLITIGATIONHOLD].QuotaAllocatedValue);
|
||||||
|
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue != -1)
|
||||||
|
if (mailboxPlan.RecoverableItemsSpace > cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.RecoverableItemsSpace = cntx.Quotas[Quotas.EXCHANGE2007_RECOVERABLEITEMSSPACE].QuotaAllocatedValue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DataProvider.UpdateExchangeMailboxPlan(mailboxPlan.MailboxPlanId, mailboxPlan.MailboxPlan, mailboxPlan.EnableActiveSync, mailboxPlan.EnableIMAP, mailboxPlan.EnableMAPI, mailboxPlan.EnableOWA, mailboxPlan.EnablePOP,
|
DataProvider.UpdateExchangeMailboxPlan(mailboxPlan.MailboxPlanId, mailboxPlan.MailboxPlan, mailboxPlan.EnableActiveSync, mailboxPlan.EnableIMAP, mailboxPlan.EnableMAPI, mailboxPlan.EnableOWA, mailboxPlan.EnablePOP,
|
||||||
mailboxPlan.IsDefault, mailboxPlan.IssueWarningPct, mailboxPlan.KeepDeletedItemsDays, mailboxPlan.MailboxSizeMB, mailboxPlan.MaxReceiveMessageSizeKB, mailboxPlan.MaxRecipients,
|
mailboxPlan.IsDefault, mailboxPlan.IssueWarningPct, mailboxPlan.KeepDeletedItemsDays, mailboxPlan.MailboxSizeMB, mailboxPlan.MaxReceiveMessageSizeKB, mailboxPlan.MaxRecipients,
|
||||||
mailboxPlan.MaxSendMessageSizeKB, mailboxPlan.ProhibitSendPct, mailboxPlan.ProhibitSendReceivePct, mailboxPlan.HideFromAddressBook, mailboxPlan.MailboxPlanType);
|
mailboxPlan.MaxSendMessageSizeKB, mailboxPlan.ProhibitSendPct, mailboxPlan.ProhibitSendReceivePct, mailboxPlan.HideFromAddressBook, mailboxPlan.MailboxPlanType,
|
||||||
|
mailboxPlan.AllowLitigationHold, mailboxPlan.RecoverableItemsSpace, mailboxPlan.RecoverableItemsWarningPct);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -912,5 +912,163 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
return users.ToArray();
|
return users.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int SetFolderQuota(int packageId, string path, string driveName)
|
||||||
|
{
|
||||||
|
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// check package
|
||||||
|
int packageCheck = SecurityContext.CheckPackage(packageId, DemandPackage.IsActive);
|
||||||
|
if (packageCheck < 0) return packageCheck;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path);
|
||||||
|
TaskManager.ItemId = packageId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
// disk space quota
|
||||||
|
// This gets all the disk space allocated for a specific customer
|
||||||
|
// It includes the package Add Ons * Quatity + Hosting Plan System disk space value.
|
||||||
|
QuotaValueInfo diskSpaceQuota = PackageController.GetPackageQuota(packageId, Quotas.OS_DISKSPACE);
|
||||||
|
|
||||||
|
|
||||||
|
#region figure Quota Unit
|
||||||
|
|
||||||
|
// Quota Unit
|
||||||
|
string unit = String.Empty;
|
||||||
|
if (diskSpaceQuota.QuotaDescription.ToLower().Contains("gb"))
|
||||||
|
unit = "GB";
|
||||||
|
else if (diskSpaceQuota.QuotaDescription.ToLower().Contains("mb"))
|
||||||
|
unit = "MB";
|
||||||
|
else
|
||||||
|
unit = "KB";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
OS.OperatingSystem os = GetOS(packageId);
|
||||||
|
|
||||||
|
os.SetQuotaLimitOnFolder(path, driveName, diskSpaceQuota.QuotaAllocatedValue.ToString() + unit, 0, String.Empty, String.Empty);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
//Log and return a generic error rather than throwing an exception
|
||||||
|
TaskManager.WriteError(ex);
|
||||||
|
return BusinessErrorCodes.ERROR_FILE_GENERIC_LOGGED;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ApplyEnableHardQuotaFeature(int packageId)
|
||||||
|
{
|
||||||
|
if (SecurityContext.CheckAccount(DemandAccount.IsActive | DemandAccount.IsAdmin | DemandAccount.NotDemo) != 0)
|
||||||
|
throw new Exception("This method could be called by serveradmin only.");
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("FILES", "APPLY_ENABLEHARDQUOTAFEATURE");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
// request OS service
|
||||||
|
//int osId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os);
|
||||||
|
//if (osId == 0)
|
||||||
|
// return -1;
|
||||||
|
|
||||||
|
//OS.OperatingSystem os = new OS.OperatingSystem();
|
||||||
|
//ServiceProviderProxy.Init(os, osId);
|
||||||
|
|
||||||
|
////Get operating system settings
|
||||||
|
// StringDictionary osSesstings = ServerController.GetServiceSettings(osId);
|
||||||
|
// bool diskQuotaEnabled = (osSesstings["EnableHardQuota"] != null) ? bool.Parse(osSesstings["EnableHardQuota"]) : false;
|
||||||
|
//string driveName = osSesstings["LocationDrive"];
|
||||||
|
|
||||||
|
//if (!diskQuotaEnabled)
|
||||||
|
// return -1;
|
||||||
|
|
||||||
|
|
||||||
|
List<PackageInfo> allPackages = PackageController.GetPackagePackages(packageId, true);
|
||||||
|
|
||||||
|
foreach (PackageInfo childPackage in allPackages)
|
||||||
|
{
|
||||||
|
// request OS service
|
||||||
|
int osId = PackageController.GetPackageServiceId(childPackage.PackageId, ResourceGroups.Os);
|
||||||
|
if (osId == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
OS.OperatingSystem os = new OS.OperatingSystem();
|
||||||
|
ServiceProviderProxy.Init(os, osId);
|
||||||
|
|
||||||
|
//Get operating system settings
|
||||||
|
StringDictionary osSesstings = ServerController.GetServiceSettings(osId);
|
||||||
|
string driveName = osSesstings["LocationDrive"];
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(driveName))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
string homeFolder = FilesController.GetHomeFolder(childPackage.PackageId);
|
||||||
|
FilesController.SetFolderQuota(childPackage.PackageId, homeFolder, driveName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int DeleteDirectoryRecursive(int packageId, string rootPath)
|
||||||
|
{
|
||||||
|
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// check package
|
||||||
|
int packageCheck = SecurityContext.CheckPackage(packageId, DemandPackage.IsActive);
|
||||||
|
if (packageCheck < 0) return packageCheck;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath);
|
||||||
|
TaskManager.ItemId = packageId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
OS.OperatingSystem os = GetOS(packageId);
|
||||||
|
os.DeleteDirectoryRecursive(rootPath);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
//Log and return a generic error rather than throwing an exception
|
||||||
|
TaskManager.WriteError(ex);
|
||||||
|
return BusinessErrorCodes.ERROR_FILE_GENERIC_LOGGED;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -406,6 +406,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
TaskManager.CompleteTask();
|
TaskManager.CompleteTask();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check If FSRM Role services were installed
|
||||||
|
public static bool CheckFileServicesInstallation(int serviceId)
|
||||||
|
{
|
||||||
|
OS.OperatingSystem os = GetOS(serviceId);
|
||||||
|
return os.CheckFileServicesInstallation();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Web Platform Installer
|
#region Web Platform Installer
|
||||||
|
|
|
@ -770,6 +770,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
if (result.ExceedingQuotas.Tables[0].Rows.Count > 0)
|
if (result.ExceedingQuotas.Tables[0].Rows.Count > 0)
|
||||||
result.Result = BusinessErrorCodes.ERROR_PACKAGE_QUOTA_EXCEED;
|
result.Result = BusinessErrorCodes.ERROR_PACKAGE_QUOTA_EXCEED;
|
||||||
|
|
||||||
|
// Update the Hard quota on home folder in case it was enabled and in case there was a change in disk space
|
||||||
|
UpdatePackageHardQuota(package.PackageId);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -963,6 +966,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
homeFolder.PackageId = packageId;
|
homeFolder.PackageId = packageId;
|
||||||
homeFolder.Name = path;
|
homeFolder.Name = path;
|
||||||
|
|
||||||
|
// Added By Haya
|
||||||
|
UpdatePackageHardQuota(packageId);
|
||||||
|
|
||||||
// save package item
|
// save package item
|
||||||
return AddPackageItem(homeFolder);
|
return AddPackageItem(homeFolder);
|
||||||
}
|
}
|
||||||
|
@ -976,6 +982,30 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
DataProvider.UpdatePackageBandwidthUpdate(packageId, updateDate);
|
DataProvider.UpdatePackageBandwidthUpdate(packageId, updateDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This gets the system quota and updates the home folder with the value
|
||||||
|
public static void UpdatePackageHardQuota(int packageId)
|
||||||
|
{
|
||||||
|
// request OS service
|
||||||
|
int osId = GetPackageServiceId(packageId, ResourceGroups.Os);
|
||||||
|
if (osId == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
OS.OperatingSystem os = new OS.OperatingSystem();
|
||||||
|
ServiceProviderProxy.Init(os, osId);
|
||||||
|
|
||||||
|
//Get operating system settings
|
||||||
|
StringDictionary osSesstings = ServerController.GetServiceSettings(osId);
|
||||||
|
bool diskQuotaEnabled = (osSesstings["EnableHardQuota"] != null) ? bool.Parse(osSesstings["EnableHardQuota"]) : false;
|
||||||
|
string driveName = osSesstings["LocationDrive"];
|
||||||
|
|
||||||
|
if (!diskQuotaEnabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
string homeFolder = FilesController.GetHomeFolder(packageId);
|
||||||
|
FilesController.SetFolderQuota(packageId, homeFolder, driveName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1035,6 +1065,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
result.Result = addonId;
|
result.Result = addonId;
|
||||||
|
|
||||||
|
// Update the Hard quota on home folder in case it was enabled and in case there was a change in disk space
|
||||||
|
UpdatePackageHardQuota(addon.PackageId);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1062,6 +1094,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (result.ExceedingQuotas.Tables[0].Rows.Count > 0)
|
if (result.ExceedingQuotas.Tables[0].Rows.Count > 0)
|
||||||
result.Result = BusinessErrorCodes.ERROR_PACKAGE_QUOTA_EXCEED;
|
result.Result = BusinessErrorCodes.ERROR_PACKAGE_QUOTA_EXCEED;
|
||||||
|
|
||||||
|
// Update the Hard quota on home folder in case it was enabled and in case there was a change in disk space
|
||||||
|
UpdatePackageHardQuota(addon.PackageId);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1072,6 +1107,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
| DemandAccount.IsReseller);
|
| DemandAccount.IsReseller);
|
||||||
if (accountCheck < 0) return accountCheck;
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
|
||||||
|
// Update the Hard quota on home folder in case it was enabled and in case there was a change in disk space
|
||||||
|
UpdatePackageHardQuota(GetPackageAddon(packageAddonId).PackageId);
|
||||||
|
|
||||||
DataProvider.DeletePackageAddon(SecurityContext.User.UserId, packageAddonId);
|
DataProvider.DeletePackageAddon(SecurityContext.User.UserId, packageAddonId);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -583,7 +583,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int DeleteWebSite(int siteItemId)
|
public static int DeleteWebSite(int siteItemId, bool deleteWebsiteDirectory)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
@ -655,6 +655,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
//
|
//
|
||||||
web.DeleteSite(siteItem.SiteId);
|
web.DeleteSite(siteItem.SiteId);
|
||||||
|
|
||||||
|
// Delete WebManagementAccess Account
|
||||||
|
WebServerController.RevokeWebManagementAccess(siteItemId);
|
||||||
|
|
||||||
|
if (deleteWebsiteDirectory)
|
||||||
|
{
|
||||||
|
// Delete website directory from file server
|
||||||
|
// This will remove the hard quota as well
|
||||||
|
FilesController.DeleteDirectoryRecursive(siteItem.PackageId, new DirectoryInfo(siteItem.DataPath).Parent.FullName);
|
||||||
|
|
||||||
|
}
|
||||||
// delete service item
|
// delete service item
|
||||||
PackageController.DeletePackageItem(siteItemId);
|
PackageController.DeletePackageItem(siteItemId);
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
<!-- Maximum waiting time when sending request to the remote server
|
<!-- Maximum waiting time when sending request to the remote server
|
||||||
The value is in seconds. "-1" - infinite. -->
|
The value is in seconds. "-1" - infinite. -->
|
||||||
<add key="WebsitePanel.EnterpriseServer.ServerRequestTimeout" value="3600" />
|
<add key="WebsitePanel.EnterpriseServer.ServerRequestTimeout" value="3600" />
|
||||||
|
<!-- Alternative connection string, pulls the value from registry -->
|
||||||
|
<add key="WebsitePanel.AltConnectionString" value="ConnectionString" />
|
||||||
|
<add key="WebsitePanel.AltCryptoKey" value="CryptoKey" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web>
|
<system.web>
|
||||||
<!-- Disable any authentication -->
|
<!-- Disable any authentication -->
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
<UseIISExpress>false</UseIISExpress>
|
<UseIISExpress>false</UseIISExpress>
|
||||||
|
<IISExpressSSLPort />
|
||||||
|
<IISExpressAnonymousAuthentication />
|
||||||
|
<IISExpressWindowsAuthentication />
|
||||||
|
<IISExpressUseClassicPipelineMode />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
@ -411,9 +415,6 @@
|
||||||
<Content Include="esWebApplicationGallery.asmx" />
|
<Content Include="esWebApplicationGallery.asmx" />
|
||||||
<EmbeddedResource Include="Images\logo.png" />
|
<EmbeddedResource Include="Images\logo.png" />
|
||||||
<Content Include="SystemEventHandlers.config" />
|
<Content Include="SystemEventHandlers.config" />
|
||||||
<Content Include="Web6.config">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</Content>
|
|
||||||
<None Include="TaskEventHandlers.config" />
|
<None Include="TaskEventHandlers.config" />
|
||||||
<None Include="WsePolicyCache.Config" />
|
<None Include="WsePolicyCache.Config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -193,5 +193,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
FilesController.ExecuteSyncActions(packageId, actions);
|
FilesController.ExecuteSyncActions(packageId, actions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CO Changes
|
||||||
|
[WebMethod]
|
||||||
|
public int ApplyEnableHardQuotaFeature(int packageId)
|
||||||
|
{
|
||||||
|
return FilesController.ApplyEnableHardQuotaFeature(packageId);
|
||||||
|
}
|
||||||
|
//END
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,5 +93,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
return OperatingSystemController.DeleteOdbcSource(itemId);
|
return OperatingSystemController.DeleteOdbcSource(itemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CO Changes
|
||||||
|
[WebMethod]
|
||||||
|
public bool CheckFileServicesInstallation(int serviceId)
|
||||||
|
{
|
||||||
|
return OperatingSystemController.CheckFileServicesInstallation(serviceId);
|
||||||
|
}
|
||||||
|
//END
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,9 +152,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int DeleteWebSite(int siteItemId)
|
public int DeleteWebSite(int siteItemId, bool deleteWebsiteDirectory)
|
||||||
{
|
{
|
||||||
return WebServerController.DeleteWebSite(siteItemId);
|
return WebServerController.DeleteWebSite(siteItemId, deleteWebsiteDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
|
|
|
@ -98,6 +98,10 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
DateTime lastLogon;
|
DateTime lastLogon;
|
||||||
DateTime lastLogoff;
|
DateTime lastLogoff;
|
||||||
|
|
||||||
|
bool enableLitigationHold;
|
||||||
|
long recoverabelItemsSpace;
|
||||||
|
long recoverabelItemsWarning;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public string DisplayName
|
public string DisplayName
|
||||||
|
@ -399,5 +403,26 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
get { return fullAccessAccounts; }
|
get { return fullAccessAccounts; }
|
||||||
set { fullAccessAccounts = value; }
|
set { fullAccessAccounts = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool EnableLitigationHold
|
||||||
|
{
|
||||||
|
get { return enableLitigationHold; }
|
||||||
|
set { enableLitigationHold = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public long RecoverabelItemsSpace
|
||||||
|
{
|
||||||
|
get { return this.recoverabelItemsSpace; }
|
||||||
|
set { this.recoverabelItemsSpace = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public long RecoverabelItemsWarning
|
||||||
|
{
|
||||||
|
get { return this.recoverabelItemsWarning; }
|
||||||
|
set { this.recoverabelItemsWarning = value; }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,6 +56,10 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
bool hideFromAddressBook;
|
bool hideFromAddressBook;
|
||||||
int mailboxPlanType;
|
int mailboxPlanType;
|
||||||
|
|
||||||
|
bool allowLitigationHold;
|
||||||
|
int recoverableItemsWarningPct;
|
||||||
|
int recoverableItemsSpace;
|
||||||
|
|
||||||
|
|
||||||
public int ItemId
|
public int ItemId
|
||||||
{
|
{
|
||||||
|
@ -173,5 +177,24 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { this.hideFromAddressBook = value; }
|
set { this.hideFromAddressBook = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool AllowLitigationHold
|
||||||
|
{
|
||||||
|
get { return this.allowLitigationHold; }
|
||||||
|
set { this.allowLitigationHold = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RecoverableItemsWarningPct
|
||||||
|
{
|
||||||
|
get { return this.recoverableItemsWarningPct; }
|
||||||
|
set { this.recoverableItemsWarningPct = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RecoverableItemsSpace
|
||||||
|
{
|
||||||
|
get { return this.recoverableItemsSpace; }
|
||||||
|
set { this.recoverableItemsSpace = value; }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
public string DisplayName{ get; set; }
|
public string DisplayName{ get; set; }
|
||||||
public DateTime AccountCreated { get; set; }
|
public DateTime AccountCreated { get; set; }
|
||||||
public string PrimaryEmailAddress { get; set; }
|
public string PrimaryEmailAddress { get; set; }
|
||||||
|
public bool LitigationHoldEnabled { get; set; }
|
||||||
public bool POPEnabled { get; set; }
|
public bool POPEnabled { get; set; }
|
||||||
public bool IMAPEnabled { get; set; }
|
public bool IMAPEnabled { get; set; }
|
||||||
public bool OWAEnabled { get; set; }
|
public bool OWAEnabled { get; set; }
|
||||||
|
@ -45,6 +46,9 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
public int TotalItems { get; set; }
|
public int TotalItems { get; set; }
|
||||||
public long TotalSize { get; set; }
|
public long TotalSize { get; set; }
|
||||||
public long MaxSize { get; set; }
|
public long MaxSize { get; set; }
|
||||||
|
public long LitigationHoldTotalSize { get; set; }
|
||||||
|
public long LitigationHoldTotalItems { get; set; }
|
||||||
|
public long LitigationHoldMaxSize { get; set; }
|
||||||
public DateTime LastLogon { get; set; }
|
public DateTime LastLogon { get; set; }
|
||||||
public DateTime LastLogoff { get; set; }
|
public DateTime LastLogoff { get; set; }
|
||||||
public bool Enabled { get; set; }
|
public bool Enabled { get; set; }
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string accountName, bool enablePOP, bool enableIMAP,
|
string accountName, bool enablePOP, bool enableIMAP,
|
||||||
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB,
|
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB,
|
||||||
int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool isConsumer);
|
int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool isConsumer, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning);
|
||||||
|
|
||||||
Organization ExtendToExchangeOrganization(string organizationId, string securityGroup, bool IsConsumer);
|
Organization ExtendToExchangeOrganization(string organizationId, string securityGroup, bool IsConsumer);
|
||||||
string GetOABVirtualDirectory();
|
string GetOABVirtualDirectory();
|
||||||
|
@ -57,8 +57,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string[] GetAuthoritativeDomains();
|
string[] GetAuthoritativeDomains();
|
||||||
|
|
||||||
// Mailboxes
|
// Mailboxes
|
||||||
//string CreateMailbox(string organizationId, string organizationDistinguishedName, string mailboxDatabase, string securityGroup, string offlineAddressBook, string addressBookPolicy, ExchangeAccountType accountType, string displayName, string accountName, string name, string domain, string password, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
|
||||||
// int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB,bool hideFromAddressBook);
|
|
||||||
void DeleteMailbox(string accountName);
|
void DeleteMailbox(string accountName);
|
||||||
void DisableMailbox(string id);
|
void DisableMailbox(string id);
|
||||||
ExchangeMailbox GetMailboxGeneralSettings(string accountName);
|
ExchangeMailbox GetMailboxGeneralSettings(string accountName);
|
||||||
|
@ -66,7 +64,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExchangeMailbox GetMailboxMailFlowSettings(string accountName);
|
ExchangeMailbox GetMailboxMailFlowSettings(string accountName);
|
||||||
void SetMailboxMailFlowSettings(string accountName, bool enableForwarding, string forwardingAccountName, bool forwardToBoth, string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication);
|
void SetMailboxMailFlowSettings(string accountName, bool enableForwarding, string forwardingAccountName, bool forwardToBoth, string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication);
|
||||||
ExchangeMailbox GetMailboxAdvancedSettings(string accountName);
|
ExchangeMailbox GetMailboxAdvancedSettings(string accountName);
|
||||||
void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB);
|
void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning);
|
||||||
ExchangeEmailAddress[] GetMailboxEmailAddresses(string accountName);
|
ExchangeEmailAddress[] GetMailboxEmailAddresses(string accountName);
|
||||||
void SetMailboxEmailAddresses(string accountName, string[] emailAddresses);
|
void SetMailboxEmailAddresses(string accountName, string[] emailAddresses);
|
||||||
void SetMailboxPrimaryEmailAddress(string accountName, string emailAddress);
|
void SetMailboxPrimaryEmailAddress(string accountName, string emailAddress);
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
void SetUserPassword(string organizationId, string accountName, string password);
|
void SetUserPassword(string organizationId, string accountName, string password);
|
||||||
|
|
||||||
void SetUserPrincipalName(string organizationId, string accountName, string userPrincipalName);
|
void SetUserPrincipalName(string organizationId, string accountName, string userPrincipalName);
|
||||||
|
|
||||||
bool OrganizationExists(string organizationId);
|
bool OrganizationExists(string organizationId);
|
||||||
|
|
||||||
void DeleteOrganizationDomain(string organizationDistinguishedName, string domain);
|
void DeleteOrganizationDomain(string organizationDistinguishedName, string domain);
|
||||||
|
|
|
@ -81,5 +81,11 @@ namespace WebsitePanel.Providers.OS
|
||||||
// Synchronizing
|
// Synchronizing
|
||||||
FolderGraph GetFolderGraph(string path);
|
FolderGraph GetFolderGraph(string path);
|
||||||
void ExecuteSyncActions(FileSyncAction[] actions);
|
void ExecuteSyncActions(FileSyncAction[] actions);
|
||||||
|
|
||||||
|
void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword);
|
||||||
|
void DeleteDirectoryRecursive(string rootPath);
|
||||||
|
|
||||||
|
// File Services
|
||||||
|
bool CheckFileServicesInstallation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,36 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("WebsitePanel.Providers.HostedSolution.Exchange2013")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("WebsitePanel.Providers.HostedSolution.Exchange2013")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2012")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("d30b5e58-a80d-411b-ab69-30bdc4e2ec15")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>WebsitePanel.Providers.HostedSolution.Exchange2013</RootNamespace>
|
||||||
|
<AssemblyName>WebsitePanel.Providers.HostedSolution.Exchange2013</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.Exchange.Common">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Common.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Exchange.Data">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Data.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Exchange.Data.Directory">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Data.Directory.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Exchange.Data.Storage">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Data.Storage.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Exchange.Diagnostics">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Diagnostics.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Exchange.Extensibility.Internal">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Extensibility.Internal.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Exchange.Net">
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Exchange2013\Microsoft.Exchange.Net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.DirectoryServices" />
|
||||||
|
<Reference Include="System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\Lib\References\Microsoft\Windows2012\System.Management.Automation.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="WebsitePanel.Providers.Base">
|
||||||
|
<HintPath>..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="WebsitePanel.Providers.HostedSolution">
|
||||||
|
<HintPath>..\WebsitePanel.Server\bin\WebsitePanel.Providers.HostedSolution.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="WebsitePanel.Server.Utils">
|
||||||
|
<HintPath>..\WebsitePanel.Server.Utils\bin\Debug\WebsitePanel.Server.Utils.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Exchange2013.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
File diff suppressed because it is too large
Load diff
|
@ -55,153 +55,374 @@ using Microsoft.Exchange.Data.Storage;
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.HostedSolution
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
public class Exchange2010 : Exchange2007
|
public class Exchange2010 : Exchange2007
|
||||||
{
|
{
|
||||||
#region Static constructor
|
#region Static constructor
|
||||||
static Exchange2010()
|
static Exchange2010()
|
||||||
{
|
{
|
||||||
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveExchangeAssembly);
|
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveExchangeAssembly);
|
||||||
ExchangeRegistryPath = "SOFTWARE\\Microsoft\\ExchangeServer\\v14\\Setup";
|
ExchangeRegistryPath = "SOFTWARE\\Microsoft\\ExchangeServer\\v14\\Setup";
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mailboxes
|
#region Mailboxes
|
||||||
|
|
||||||
internal override void SetCalendarSettings(Runspace runspace, string id)
|
internal override void SetCalendarSettings(Runspace runspace, string id)
|
||||||
{
|
{
|
||||||
ExchangeLog.LogStart("SetCalendarSettings");
|
ExchangeLog.LogStart("SetCalendarSettings");
|
||||||
Command cmd = new Command("Set-CalendarProcessing");
|
Command cmd = new Command("Set-CalendarProcessing");
|
||||||
cmd.Parameters.Add("Identity", id);
|
cmd.Parameters.Add("Identity", id);
|
||||||
cmd.Parameters.Add("AutomateProcessing", CalendarProcessingFlags.AutoAccept);
|
cmd.Parameters.Add("AutomateProcessing", CalendarProcessingFlags.AutoAccept);
|
||||||
ExecuteShellCommand(runspace, cmd);
|
ExecuteShellCommand(runspace, cmd);
|
||||||
ExchangeLog.LogEnd("SetCalendarSettings");
|
ExchangeLog.LogEnd("SetCalendarSettings");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Distribution Lists
|
internal override ExchangeMailbox GetMailboxAdvancedSettingsInternal(string accountName)
|
||||||
internal override string GetGroupManager(PSObject group)
|
{
|
||||||
{
|
ExchangeLog.LogStart("GetMailboxAdvancedSettingsInternal");
|
||||||
string ret = null;
|
ExchangeLog.DebugInfo("Account: {0}", accountName);
|
||||||
MultiValuedProperty<ADObjectId> ids =
|
|
||||||
(MultiValuedProperty<ADObjectId>)GetPSObjectProperty(group, "ManagedBy");
|
|
||||||
if ( ids.Count > 0 )
|
|
||||||
ret = ObjToString(ids[0]);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void RemoveDistributionGroup(Runspace runSpace, string id)
|
ExchangeMailbox info = new ExchangeMailbox();
|
||||||
{
|
info.AccountName = accountName;
|
||||||
ExchangeLog.LogStart("RemoveDistributionGroup");
|
Runspace runSpace = null;
|
||||||
Command cmd = new Command("Remove-DistributionGroup");
|
try
|
||||||
cmd.Parameters.Add("Identity", id);
|
{
|
||||||
cmd.Parameters.Add("Confirm", false);
|
runSpace = OpenRunspace();
|
||||||
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
|
||||||
ExchangeLog.LogEnd("RemoveDistributionGroup");
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void SetDistributionGroup(Runspace runSpace, string id, string displayName, bool hideFromAddressBook)
|
Collection<PSObject> result = GetMailboxObject(runSpace, accountName);
|
||||||
{
|
PSObject mailbox = result[0];
|
||||||
Command cmd = new Command("Set-DistributionGroup");
|
|
||||||
cmd.Parameters.Add("Identity", id);
|
|
||||||
cmd.Parameters.Add("DisplayName", displayName);
|
|
||||||
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
|
||||||
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void SetGroup(Runspace runSpace, string id, string managedBy, string notes)
|
info.IssueWarningKB =
|
||||||
{
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "IssueWarningQuota"));
|
||||||
Command cmd = new Command("Set-Group");
|
info.ProhibitSendKB =
|
||||||
cmd.Parameters.Add("Identity", id);
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "ProhibitSendQuota"));
|
||||||
cmd.Parameters.Add("ManagedBy", managedBy);
|
info.ProhibitSendReceiveKB =
|
||||||
cmd.Parameters.Add("Notes", notes);
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "ProhibitSendReceiveQuota"));
|
||||||
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
info.KeepDeletedItemsDays =
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ConvertEnhancedTimeSpanToDays((EnhancedTimeSpan)GetPSObjectProperty(mailbox, "RetainDeletedItemsFor"));
|
||||||
}
|
|
||||||
|
|
||||||
internal override void RemoveDistributionGroupMember(Runspace runSpace, string group, string member)
|
info.EnableLitigationHold = (bool)GetPSObjectProperty(mailbox, "LitigationHoldEnabled");
|
||||||
{
|
|
||||||
Command cmd = new Command("Remove-DistributionGroupMember");
|
|
||||||
cmd.Parameters.Add("Identity", group);
|
|
||||||
cmd.Parameters.Add("Member", member);
|
|
||||||
cmd.Parameters.Add("Confirm", false);
|
|
||||||
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void AddDistributionGroupMember(Runspace runSpace, string group, string member)
|
info.RecoverabelItemsSpace =
|
||||||
{
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsQuota"));
|
||||||
Command cmd = new Command("Add-DistributionGroupMember");
|
info.RecoverabelItemsWarning =
|
||||||
cmd.Parameters.Add("Identity", group);
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsWarningQuota"));
|
||||||
cmd.Parameters.Add("Member", member);
|
|
||||||
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void SetDistributionListSendOnBehalfAccounts(Runspace runspace, string accountName, string[] sendOnBehalfAccounts)
|
|
||||||
{
|
|
||||||
ExchangeLog.LogStart("SetDistributionListSendOnBehalfAccounts");
|
|
||||||
Command cmd = new Command("Set-DistributionGroup");
|
|
||||||
cmd.Parameters.Add("Identity", accountName);
|
|
||||||
cmd.Parameters.Add("GrantSendOnBehalfTo", SetSendOnBehalfAccounts(runspace, sendOnBehalfAccounts));
|
|
||||||
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
|
||||||
ExecuteShellCommand(runspace, cmd);
|
|
||||||
ExchangeLog.LogEnd("SetDistributionListSendOnBehalfAccounts");
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region PowerShell integration
|
//Client Access
|
||||||
internal override string ExchangeSnapInName
|
Command cmd = new Command("Get-CASMailbox");
|
||||||
{
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
get { return "Microsoft.Exchange.Management.PowerShell.E2010"; }
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
}
|
mailbox = result[0];
|
||||||
|
|
||||||
internal override Runspace OpenRunspace()
|
info.EnableActiveSync = (bool)GetPSObjectProperty(mailbox, "ActiveSyncEnabled");
|
||||||
{
|
info.EnableOWA = (bool)GetPSObjectProperty(mailbox, "OWAEnabled");
|
||||||
Runspace runspace = base.OpenRunspace();
|
info.EnableMAPI = (bool)GetPSObjectProperty(mailbox, "MAPIEnabled");
|
||||||
Command cmd = new Command("Set-ADServerSettings");
|
info.EnablePOP = (bool)GetPSObjectProperty(mailbox, "PopEnabled");
|
||||||
cmd.Parameters.Add("PreferredServer", PrimaryDomainController);
|
info.EnableIMAP = (bool)GetPSObjectProperty(mailbox, "ImapEnabled");
|
||||||
ExecuteShellCommand(runspace, cmd, false);
|
|
||||||
return runspace;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static Assembly ResolveExchangeAssembly(object p, ResolveEventArgs args)
|
//Statistics
|
||||||
{
|
cmd = new Command("Get-MailboxStatistics");
|
||||||
//Add path for the Exchange 2007 DLLs
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
if (args.Name.Contains("Microsoft.Exchange"))
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
{
|
if (result.Count > 0)
|
||||||
string exchangePath = GetExchangePath();
|
{
|
||||||
if (string.IsNullOrEmpty(exchangePath))
|
PSObject statistics = result[0];
|
||||||
return null;
|
Unlimited<ByteQuantifiedSize> totalItemSize =
|
||||||
|
(Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(statistics, "TotalItemSize");
|
||||||
|
info.TotalSizeMB = ConvertUnlimitedToMB(totalItemSize);
|
||||||
|
uint? itemCount = (uint?)GetPSObjectProperty(statistics, "ItemCount");
|
||||||
|
info.TotalItems = ConvertNullableToInt32(itemCount);
|
||||||
|
DateTime? lastLogoffTime = (DateTime?)GetPSObjectProperty(statistics, "LastLogoffTime"); ;
|
||||||
|
DateTime? lastLogonTime = (DateTime?)GetPSObjectProperty(statistics, "LastLogonTime"); ;
|
||||||
|
info.LastLogoff = ConvertNullableToDateTime(lastLogoffTime);
|
||||||
|
info.LastLogon = ConvertNullableToDateTime(lastLogonTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
info.TotalSizeMB = 0;
|
||||||
|
info.TotalItems = 0;
|
||||||
|
info.LastLogoff = DateTime.MinValue;
|
||||||
|
info.LastLogon = DateTime.MinValue;
|
||||||
|
}
|
||||||
|
|
||||||
string path = Path.Combine(exchangePath, args.Name.Split(',')[0] + ".dll");
|
//domain
|
||||||
if (!File.Exists(path))
|
info.Domain = GetNETBIOSDomainName();
|
||||||
return null;
|
}
|
||||||
|
finally
|
||||||
ExchangeLog.DebugInfo("Resolved assembly: {0}", path);
|
{
|
||||||
|
|
||||||
return Assembly.LoadFrom(path);
|
CloseRunspace(runSpace);
|
||||||
}
|
}
|
||||||
else
|
ExchangeLog.LogEnd("GetMailboxAdvancedSettingsInternal");
|
||||||
{
|
return info;
|
||||||
return null;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Storage
|
internal override ExchangeMailboxStatistics GetMailboxStatisticsInternal(string id)
|
||||||
internal override string CreateStorageGroup(Runspace runSpace, string name, string server)
|
{
|
||||||
{
|
ExchangeLog.LogStart("GetMailboxStatisticsInternal");
|
||||||
return string.Empty;
|
ExchangeLog.DebugInfo("Account: {0}", id);
|
||||||
}
|
|
||||||
|
|
||||||
internal override string CreateMailboxDatabase(Runspace runSpace, string name, string storageGroup)
|
ExchangeMailboxStatistics info = new ExchangeMailboxStatistics();
|
||||||
{
|
Runspace runSpace = null;
|
||||||
ExchangeLog.LogStart("CreateMailboxDatabase");
|
try
|
||||||
string id;
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
Collection<PSObject> result = GetMailboxObject(runSpace, id);
|
||||||
|
PSObject mailbox = result[0];
|
||||||
|
|
||||||
|
string dn = GetResultObjectDN(result);
|
||||||
|
string path = AddADPrefix(dn);
|
||||||
|
DirectoryEntry entry = GetADObject(path);
|
||||||
|
info.Enabled = !(bool)entry.InvokeGet("AccountDisabled");
|
||||||
|
info.LitigationHoldEnabled = (bool)GetPSObjectProperty(mailbox, "LitigationHoldEnabled");
|
||||||
|
|
||||||
|
info.DisplayName = (string)GetPSObjectProperty(mailbox, "DisplayName");
|
||||||
|
SmtpAddress smtpAddress = (SmtpAddress)GetPSObjectProperty(mailbox, "PrimarySmtpAddress");
|
||||||
|
if (smtpAddress != null)
|
||||||
|
info.PrimaryEmailAddress = smtpAddress.ToString();
|
||||||
|
|
||||||
|
info.MaxSize = ConvertUnlimitedToBytes((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "ProhibitSendReceiveQuota"));
|
||||||
|
info.LitigationHoldMaxSize = ConvertUnlimitedToBytes((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsQuota"));
|
||||||
|
|
||||||
|
DateTime? whenCreated = (DateTime?)GetPSObjectProperty(mailbox, "WhenCreated");
|
||||||
|
info.AccountCreated = ConvertNullableToDateTime(whenCreated);
|
||||||
|
//Client Access
|
||||||
|
Command cmd = new Command("Get-CASMailbox");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
mailbox = result[0];
|
||||||
|
|
||||||
|
info.ActiveSyncEnabled = (bool)GetPSObjectProperty(mailbox, "ActiveSyncEnabled");
|
||||||
|
info.OWAEnabled = (bool)GetPSObjectProperty(mailbox, "OWAEnabled");
|
||||||
|
info.MAPIEnabled = (bool)GetPSObjectProperty(mailbox, "MAPIEnabled");
|
||||||
|
info.POPEnabled = (bool)GetPSObjectProperty(mailbox, "PopEnabled");
|
||||||
|
info.IMAPEnabled = (bool)GetPSObjectProperty(mailbox, "ImapEnabled");
|
||||||
|
|
||||||
|
//Statistics
|
||||||
|
cmd = new Command("Get-MailboxStatistics");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
if (result.Count > 0)
|
||||||
|
{
|
||||||
|
PSObject statistics = result[0];
|
||||||
|
Unlimited<ByteQuantifiedSize> totalItemSize = (Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(statistics, "TotalItemSize");
|
||||||
|
info.TotalSize = ConvertUnlimitedToBytes(totalItemSize);
|
||||||
|
|
||||||
|
uint? itemCount = (uint?)GetPSObjectProperty(statistics, "ItemCount");
|
||||||
|
info.TotalItems = ConvertNullableToInt32(itemCount);
|
||||||
|
|
||||||
|
totalItemSize = (Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(statistics, "FolderAndSubfolderSize");
|
||||||
|
info.LitigationHoldTotalSize = ConvertUnlimitedToBytes(totalItemSize);
|
||||||
|
|
||||||
|
itemCount = (uint?)GetPSObjectProperty(statistics, "ItemsInFolder");
|
||||||
|
info.LitigationHoldTotalItems = ConvertNullableToInt32(itemCount);
|
||||||
|
|
||||||
|
DateTime? lastLogoffTime = (DateTime?)GetPSObjectProperty(statistics, "LastLogoffTime");
|
||||||
|
DateTime? lastLogonTime = (DateTime?)GetPSObjectProperty(statistics, "LastLogonTime");
|
||||||
|
info.LastLogoff = ConvertNullableToDateTime(lastLogoffTime);
|
||||||
|
info.LastLogon = ConvertNullableToDateTime(lastLogonTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
info.TotalSize = 0;
|
||||||
|
info.TotalItems = 0;
|
||||||
|
info.LastLogoff = DateTime.MinValue;
|
||||||
|
info.LastLogon = DateTime.MinValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("GetMailboxStatisticsInternal");
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
internal override void SetMailboxAdvancedSettingsInternal(string organizationId, string accountName, bool enablePOP, bool enableIMAP,
|
||||||
|
bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB,
|
||||||
|
long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB,
|
||||||
|
int maxReceiveMessageSizeKB, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("SetMailboxAdvancedSettingsInternal");
|
||||||
|
ExchangeLog.DebugInfo("Account: {0}", accountName);
|
||||||
|
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
|
||||||
|
Command cmd = new Command("Set-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB));
|
||||||
|
cmd.Parameters.Add("ProhibitSendQuota", ConvertKBToUnlimited(prohibitSendKB));
|
||||||
|
cmd.Parameters.Add("ProhibitSendReceiveQuota", ConvertKBToUnlimited(prohibitSendReceiveKB));
|
||||||
|
cmd.Parameters.Add("RetainDeletedItemsFor", ConvertDaysToEnhancedTimeSpan(keepDeletedItemsDays));
|
||||||
|
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
||||||
|
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
||||||
|
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
||||||
|
|
||||||
|
cmd.Parameters.Add("LitigationHoldEnabled", enabledLitigationHold);
|
||||||
|
cmd.Parameters.Add("RecoverableItemsQuota", ConvertKBToUnlimited(recoverabelItemsSpace));
|
||||||
|
cmd.Parameters.Add("RecoverableItemsWarningQuota", ConvertKBToUnlimited(recoverabelItemsWarning));
|
||||||
|
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
//Client Access
|
||||||
|
cmd = new Command("Set-CASMailbox");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
cmd.Parameters.Add("ActiveSyncEnabled", enableActiveSync);
|
||||||
|
if (enableActiveSync)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("ActiveSyncMailboxPolicy", organizationId);
|
||||||
|
}
|
||||||
|
cmd.Parameters.Add("OWAEnabled", enableOWA);
|
||||||
|
cmd.Parameters.Add("MAPIEnabled", enableMAPI);
|
||||||
|
cmd.Parameters.Add("PopEnabled", enablePOP);
|
||||||
|
cmd.Parameters.Add("ImapEnabled", enableIMAP);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("SetMailboxAdvancedSettingsInternal");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Distribution Lists
|
||||||
|
internal override string GetGroupManager(PSObject group)
|
||||||
|
{
|
||||||
|
string ret = null;
|
||||||
|
MultiValuedProperty<ADObjectId> ids =
|
||||||
|
(MultiValuedProperty<ADObjectId>)GetPSObjectProperty(group, "ManagedBy");
|
||||||
|
if (ids.Count > 0)
|
||||||
|
ret = ObjToString(ids[0]);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void RemoveDistributionGroup(Runspace runSpace, string id)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("RemoveDistributionGroup");
|
||||||
|
Command cmd = new Command("Remove-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("Confirm", false);
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
ExchangeLog.LogEnd("RemoveDistributionGroup");
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void SetDistributionGroup(Runspace runSpace, string id, string displayName, bool hideFromAddressBook)
|
||||||
|
{
|
||||||
|
Command cmd = new Command("Set-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("DisplayName", displayName);
|
||||||
|
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void SetGroup(Runspace runSpace, string id, string managedBy, string notes)
|
||||||
|
{
|
||||||
|
Command cmd = new Command("Set-Group");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("ManagedBy", managedBy);
|
||||||
|
cmd.Parameters.Add("Notes", notes);
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void RemoveDistributionGroupMember(Runspace runSpace, string group, string member)
|
||||||
|
{
|
||||||
|
Command cmd = new Command("Remove-DistributionGroupMember");
|
||||||
|
cmd.Parameters.Add("Identity", group);
|
||||||
|
cmd.Parameters.Add("Member", member);
|
||||||
|
cmd.Parameters.Add("Confirm", false);
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void AddDistributionGroupMember(Runspace runSpace, string group, string member)
|
||||||
|
{
|
||||||
|
Command cmd = new Command("Add-DistributionGroupMember");
|
||||||
|
cmd.Parameters.Add("Identity", group);
|
||||||
|
cmd.Parameters.Add("Member", member);
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void SetDistributionListSendOnBehalfAccounts(Runspace runspace, string accountName, string[] sendOnBehalfAccounts)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("SetDistributionListSendOnBehalfAccounts");
|
||||||
|
Command cmd = new Command("Set-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
cmd.Parameters.Add("GrantSendOnBehalfTo", SetSendOnBehalfAccounts(runspace, sendOnBehalfAccounts));
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
|
||||||
|
ExecuteShellCommand(runspace, cmd);
|
||||||
|
ExchangeLog.LogEnd("SetDistributionListSendOnBehalfAccounts");
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region PowerShell integration
|
||||||
|
internal override string ExchangeSnapInName
|
||||||
|
{
|
||||||
|
get { return "Microsoft.Exchange.Management.PowerShell.E2010"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override Runspace OpenRunspace()
|
||||||
|
{
|
||||||
|
Runspace runspace = base.OpenRunspace();
|
||||||
|
Command cmd = new Command("Set-ADServerSettings");
|
||||||
|
cmd.Parameters.Add("PreferredServer", PrimaryDomainController);
|
||||||
|
ExecuteShellCommand(runspace, cmd, false);
|
||||||
|
return runspace;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static Assembly ResolveExchangeAssembly(object p, ResolveEventArgs args)
|
||||||
|
{
|
||||||
|
//Add path for the Exchange 2007 DLLs
|
||||||
|
if (args.Name.Contains("Microsoft.Exchange"))
|
||||||
|
{
|
||||||
|
string exchangePath = GetExchangePath();
|
||||||
|
if (string.IsNullOrEmpty(exchangePath))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
string path = Path.Combine(exchangePath, args.Name.Split(',')[0] + ".dll");
|
||||||
|
if (!File.Exists(path))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
ExchangeLog.DebugInfo("Resolved assembly: {0}", path);
|
||||||
|
|
||||||
|
return Assembly.LoadFrom(path);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Storage
|
||||||
|
internal override string CreateStorageGroup(Runspace runSpace, string name, string server)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override string CreateMailboxDatabase(Runspace runSpace, string name, string storageGroup)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("CreateMailboxDatabase");
|
||||||
|
string id;
|
||||||
if (name != "*")
|
if (name != "*")
|
||||||
{
|
{
|
||||||
Command cmd = new Command("Get-MailboxDatabase");
|
Command cmd = new Command("Get-MailboxDatabase");
|
||||||
|
@ -220,31 +441,31 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
id = "*";
|
id = "*";
|
||||||
}
|
}
|
||||||
ExchangeLog.LogEnd("CreateMailboxDatabase");
|
ExchangeLog.LogEnd("CreateMailboxDatabase");
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override bool IsInstalled()
|
public override bool IsInstalled()
|
||||||
{
|
{
|
||||||
int value = 0;
|
int value = 0;
|
||||||
bool bResult = false;
|
bool bResult = false;
|
||||||
RegistryKey root = Registry.LocalMachine;
|
RegistryKey root = Registry.LocalMachine;
|
||||||
RegistryKey rk = root.OpenSubKey(ExchangeRegistryPath);
|
RegistryKey rk = root.OpenSubKey(ExchangeRegistryPath);
|
||||||
if (rk != null)
|
if (rk != null)
|
||||||
{
|
{
|
||||||
value = (int)rk.GetValue("MsiProductMajor", null);
|
value = (int)rk.GetValue("MsiProductMajor", null);
|
||||||
if (value == 14)
|
if (value == 14)
|
||||||
{
|
{
|
||||||
value = (int)rk.GetValue("MsiProductMinor", null);
|
value = (int)rk.GetValue("MsiProductMinor", null);
|
||||||
if ((value == 0) | (value == 1)) bResult = true;
|
if ((value == 0) | (value == 1)) bResult = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
rk.Close();
|
rk.Close();
|
||||||
}
|
}
|
||||||
return bResult;
|
return bResult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -327,7 +327,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string accountName, bool enablePOP, bool enableIMAP,
|
string accountName, bool enablePOP, bool enableIMAP,
|
||||||
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays,
|
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays,
|
||||||
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool IsConsumer)
|
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool IsConsumer, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
{
|
{
|
||||||
|
|
||||||
ExchangeLog.LogStart("CreateMailEnableUserInternal");
|
ExchangeLog.LogStart("CreateMailEnableUserInternal");
|
||||||
|
@ -414,6 +414,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
else
|
else
|
||||||
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
||||||
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
||||||
|
|
||||||
|
if (enabledLitigationHold)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("LitigationHoldEnabled", true);
|
||||||
|
cmd.Parameters.Add("RecoverableItemsQuota", ConvertKBToUnlimited(recoverabelItemsSpace));
|
||||||
|
cmd.Parameters.Add("RecoverableItemsWarningQuota", ConvertKBToUnlimited(recoverabelItemsWarning));
|
||||||
|
}
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//Client Access
|
//Client Access
|
||||||
|
@ -493,7 +501,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("Identity", id);
|
cmd.Parameters.Add("Identity", id);
|
||||||
cmd.Parameters.Add("Confirm", false);
|
cmd.Parameters.Add("Confirm", false);
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
|
||||||
if (addressbookPolicy == (upn + " AP"))
|
if (addressbookPolicy == (upn + " AP"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,52 +36,52 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Exchange Log Helper Methods
|
/// Exchange Log Helper Methods
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal class ExchangeLog
|
public static class ExchangeLog
|
||||||
{
|
{
|
||||||
internal static string LogPrefix = "Exchange";
|
public static string LogPrefix = "Exchange";
|
||||||
|
|
||||||
internal static void LogStart(string message, params object[] args)
|
public static void LogStart(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteStart("{0} {1}", LogPrefix, text);
|
Log.WriteStart("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void LogEnd(string message, params object[] args)
|
public static void LogEnd(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteEnd("{0} {1}", LogPrefix, text);
|
Log.WriteEnd("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void LogInfo(string message, params object[] args)
|
public static void LogInfo(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void LogWarning(string message, params object[] args)
|
public static void LogWarning(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteWarning("{0} {1}", LogPrefix, text);
|
Log.WriteWarning("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void LogError(Exception ex)
|
public static void LogError(Exception ex)
|
||||||
{
|
{
|
||||||
Log.WriteError(LogPrefix, ex);
|
Log.WriteError(LogPrefix, ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void LogError(string message, Exception ex)
|
public static void LogError(string message, Exception ex)
|
||||||
{
|
{
|
||||||
string text = String.Format("{0} {1}", LogPrefix, message);
|
string text = String.Format("{0} {1}", LogPrefix, message);
|
||||||
Log.WriteError(text, ex);
|
Log.WriteError(text, ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void DebugInfo(string message, params object[] args)
|
public static void DebugInfo(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void DebugCommand(Command cmd)
|
public static void DebugCommand(Command cmd)
|
||||||
{
|
{
|
||||||
StringBuilder sb = new StringBuilder(cmd.CommandText);
|
StringBuilder sb = new StringBuilder(cmd.CommandText);
|
||||||
foreach (CommandParameter parameter in cmd.Parameters)
|
foreach (CommandParameter parameter in cmd.Parameters)
|
||||||
|
|
|
@ -30,7 +30,7 @@ using System.Collections.Generic;
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.HostedSolution
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
internal class ExchangeTransaction
|
public class ExchangeTransaction
|
||||||
{
|
{
|
||||||
List<TransactionAction> actions = null;
|
List<TransactionAction> actions = null;
|
||||||
|
|
||||||
|
@ -39,12 +39,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
actions = new List<TransactionAction>();
|
actions = new List<TransactionAction>();
|
||||||
}
|
}
|
||||||
|
|
||||||
internal List<TransactionAction> Actions
|
public List<TransactionAction> Actions
|
||||||
{
|
{
|
||||||
get { return actions; }
|
get { return actions; }
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewOrganizationUnit(string id)
|
public void RegisterNewOrganizationUnit(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateOrganizationUnit;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateOrganizationUnit;
|
||||||
|
@ -69,7 +69,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewGlobalAddressList(string id)
|
public void RegisterNewGlobalAddressList(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateGlobalAddressList;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateGlobalAddressList;
|
||||||
|
@ -77,7 +77,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewAddressList(string id)
|
public void RegisterNewAddressList(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
|
||||||
|
@ -85,7 +85,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewAddressBookPolicy(string id)
|
public void RegisterNewAddressBookPolicy(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressBookPolicy;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressBookPolicy;
|
||||||
|
@ -94,7 +94,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal void RegisterNewRoomsAddressList(string id)
|
public void RegisterNewRoomsAddressList(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
|
||||||
|
@ -103,7 +103,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal void RegisterNewOfflineAddressBook(string id)
|
public void RegisterNewOfflineAddressBook(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateOfflineAddressBook;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateOfflineAddressBook;
|
||||||
|
@ -111,7 +111,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewActiveSyncPolicy(string id)
|
public void RegisterNewActiveSyncPolicy(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateActiveSyncPolicy;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateActiveSyncPolicy;
|
||||||
|
@ -120,7 +120,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal void RegisterNewAcceptedDomain(string id)
|
public void RegisterNewAcceptedDomain(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateAcceptedDomain;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateAcceptedDomain;
|
||||||
|
@ -128,7 +128,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewUPNSuffix(string id, string suffix)
|
public void RegisterNewUPNSuffix(string id, string suffix)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.AddUPNSuffix;
|
action.ActionType = TransactionAction.TransactionActionTypes.AddUPNSuffix;
|
||||||
|
@ -137,7 +137,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewMailbox(string id)
|
public void RegisterNewMailbox(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateMailbox;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateMailbox;
|
||||||
|
@ -145,7 +145,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterEnableMailbox(string id)
|
public void RegisterEnableMailbox(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.EnableMailbox;
|
action.ActionType = TransactionAction.TransactionActionTypes.EnableMailbox;
|
||||||
|
@ -154,7 +154,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal void RegisterNewContact(string id)
|
public void RegisterNewContact(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateContact;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateContact;
|
||||||
|
@ -162,7 +162,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RegisterNewPublicFolder(string id)
|
public void RegisterNewPublicFolder(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreatePublicFolder;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreatePublicFolder;
|
||||||
|
@ -170,7 +170,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void AddMailBoxFullAccessPermission(string accountName, string id)
|
public void AddMailBoxFullAccessPermission(string accountName, string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.AddMailboxFullAccessPermission;
|
action.ActionType = TransactionAction.TransactionActionTypes.AddMailboxFullAccessPermission;
|
||||||
|
@ -179,7 +179,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void AddSendAsPermission(string accountName, string id)
|
public void AddSendAsPermission(string accountName, string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.AddSendAsPermission;
|
action.ActionType = TransactionAction.TransactionActionTypes.AddSendAsPermission;
|
||||||
|
@ -188,7 +188,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RemoveMailboxFullAccessPermission(string accountName, string id)
|
public void RemoveMailboxFullAccessPermission(string accountName, string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.RemoveMailboxFullAccessPermission;
|
action.ActionType = TransactionAction.TransactionActionTypes.RemoveMailboxFullAccessPermission;
|
||||||
|
@ -197,7 +197,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void RemoveSendAsPermission(string accountName, string id)
|
public void RemoveSendAsPermission(string accountName, string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.RemoveSendAsPermission;
|
action.ActionType = TransactionAction.TransactionActionTypes.RemoveSendAsPermission;
|
||||||
|
|
|
@ -645,7 +645,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
string path = GetUserPath(organizationId, accountName);
|
string path = GetUserPath(organizationId, accountName);
|
||||||
DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path);
|
DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(password))
|
if (!string.IsNullOrEmpty(password))
|
||||||
entry.Invoke(ADAttributes.SetPassword, password);
|
entry.Invoke(ADAttributes.SetPassword, password);
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<WarningsAsErrors>618</WarningsAsErrors>
|
<WarningsAsErrors>618</WarningsAsErrors>
|
||||||
|
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
|
|
@ -209,6 +209,16 @@ namespace WebsitePanel.Providers.OS
|
||||||
SecurityUtils.GrantGroupNtfsPermissions(path, users, resetChildPermissions,
|
SecurityUtils.GrantGroupNtfsPermissions(path, users, resetChildPermissions,
|
||||||
ServerSettings, usersOU, null);
|
ServerSettings, usersOU, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword)
|
||||||
|
{
|
||||||
|
FileUtils.SetQuotaLimitOnFolder(folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void DeleteDirectoryRecursive(string rootPath)
|
||||||
|
{
|
||||||
|
FileUtils.DeleteDirectoryRecursive(rootPath);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ODBC DSNs
|
#region ODBC DSNs
|
||||||
|
@ -729,5 +739,11 @@ namespace WebsitePanel.Providers.OS
|
||||||
{
|
{
|
||||||
return WebsitePanel.Server.Utils.OS.GetVersion() == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2003;
|
return WebsitePanel.Server.Utils.OS.GetVersion() == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2003;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual bool CheckFileServicesInstallation()
|
||||||
|
{
|
||||||
|
return WebsitePanel.Server.Utils.OS.CheckFileServicesInstallation();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.5456
|
// Runtime Version:2.0.50727.6400
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -37,19 +37,18 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
|
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
|
||||||
//
|
//
|
||||||
|
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.Exchange
|
namespace WebsitePanel.Providers.Exchange {
|
||||||
{
|
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
using System.Web.Services;
|
using System.Web.Services;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Web.Services.Protocols;
|
using System.Web.Services.Protocols;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -85,6 +84,8 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback AddAuthoritativeDomainOperationCompleted;
|
private System.Threading.SendOrPostCallback AddAuthoritativeDomainOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback ChangeAcceptedDomainTypeOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetAuthoritativeDomainsOperationCompleted;
|
private System.Threading.SendOrPostCallback GetAuthoritativeDomainsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback DeleteAuthoritativeDomainOperationCompleted;
|
private System.Threading.SendOrPostCallback DeleteAuthoritativeDomainOperationCompleted;
|
||||||
|
@ -233,6 +234,9 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event AddAuthoritativeDomainCompletedEventHandler AddAuthoritativeDomainCompleted;
|
public event AddAuthoritativeDomainCompletedEventHandler AddAuthoritativeDomainCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event ChangeAcceptedDomainTypeCompletedEventHandler ChangeAcceptedDomainTypeCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GetAuthoritativeDomainsCompletedEventHandler GetAuthoritativeDomainsCompleted;
|
public event GetAuthoritativeDomainsCompletedEventHandler GetAuthoritativeDomainsCompleted;
|
||||||
|
|
||||||
|
@ -516,7 +520,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
int maxSendMessageSizeKB,
|
int maxSendMessageSizeKB,
|
||||||
int maxReceiveMessageSizeKB,
|
int maxReceiveMessageSizeKB,
|
||||||
bool hideFromAddressBook,
|
bool hideFromAddressBook,
|
||||||
bool isConsumer) {
|
bool isConsumer,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning) {
|
||||||
object[] results = this.Invoke("CreateMailEnableUser", new object[] {
|
object[] results = this.Invoke("CreateMailEnableUser", new object[] {
|
||||||
upn,
|
upn,
|
||||||
organizationId,
|
organizationId,
|
||||||
|
@ -539,7 +546,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
maxSendMessageSizeKB,
|
maxSendMessageSizeKB,
|
||||||
maxReceiveMessageSizeKB,
|
maxReceiveMessageSizeKB,
|
||||||
hideFromAddressBook,
|
hideFromAddressBook,
|
||||||
isConsumer});
|
isConsumer,
|
||||||
|
enabledLitigationHold,
|
||||||
|
recoverabelItemsSpace,
|
||||||
|
recoverabelItemsWarning});
|
||||||
return ((string)(results[0]));
|
return ((string)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -567,6 +577,9 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
int maxReceiveMessageSizeKB,
|
int maxReceiveMessageSizeKB,
|
||||||
bool hideFromAddressBook,
|
bool hideFromAddressBook,
|
||||||
bool isConsumer,
|
bool isConsumer,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning,
|
||||||
System.AsyncCallback callback,
|
System.AsyncCallback callback,
|
||||||
object asyncState) {
|
object asyncState) {
|
||||||
return this.BeginInvoke("CreateMailEnableUser", new object[] {
|
return this.BeginInvoke("CreateMailEnableUser", new object[] {
|
||||||
|
@ -591,7 +604,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
maxSendMessageSizeKB,
|
maxSendMessageSizeKB,
|
||||||
maxReceiveMessageSizeKB,
|
maxReceiveMessageSizeKB,
|
||||||
hideFromAddressBook,
|
hideFromAddressBook,
|
||||||
isConsumer}, callback, asyncState);
|
isConsumer,
|
||||||
|
enabledLitigationHold,
|
||||||
|
recoverabelItemsSpace,
|
||||||
|
recoverabelItemsWarning}, callback, asyncState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -623,8 +639,11 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
int maxSendMessageSizeKB,
|
int maxSendMessageSizeKB,
|
||||||
int maxReceiveMessageSizeKB,
|
int maxReceiveMessageSizeKB,
|
||||||
bool hideFromAddressBook,
|
bool hideFromAddressBook,
|
||||||
bool isConsumer) {
|
bool isConsumer,
|
||||||
this.CreateMailEnableUserAsync(upn, organizationId, organizationDistinguishedName, accountType, mailboxDatabase, offlineAddressBook, addressBookPolicy, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync, issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook, isConsumer, null);
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning) {
|
||||||
|
this.CreateMailEnableUserAsync(upn, organizationId, organizationDistinguishedName, accountType, mailboxDatabase, offlineAddressBook, addressBookPolicy, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync, issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook, isConsumer, enabledLitigationHold, recoverabelItemsSpace, recoverabelItemsWarning, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -651,6 +670,9 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
int maxReceiveMessageSizeKB,
|
int maxReceiveMessageSizeKB,
|
||||||
bool hideFromAddressBook,
|
bool hideFromAddressBook,
|
||||||
bool isConsumer,
|
bool isConsumer,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning,
|
||||||
object userState) {
|
object userState) {
|
||||||
if ((this.CreateMailEnableUserOperationCompleted == null)) {
|
if ((this.CreateMailEnableUserOperationCompleted == null)) {
|
||||||
this.CreateMailEnableUserOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateMailEnableUserOperationCompleted);
|
this.CreateMailEnableUserOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateMailEnableUserOperationCompleted);
|
||||||
|
@ -677,7 +699,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
maxSendMessageSizeKB,
|
maxSendMessageSizeKB,
|
||||||
maxReceiveMessageSizeKB,
|
maxReceiveMessageSizeKB,
|
||||||
hideFromAddressBook,
|
hideFromAddressBook,
|
||||||
isConsumer}, this.CreateMailEnableUserOperationCompleted, userState);
|
isConsumer,
|
||||||
|
enabledLitigationHold,
|
||||||
|
recoverabelItemsSpace,
|
||||||
|
recoverabelItemsWarning}, this.CreateMailEnableUserOperationCompleted, userState);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnCreateMailEnableUserOperationCompleted(object arg) {
|
private void OnCreateMailEnableUserOperationCompleted(object arg) {
|
||||||
|
@ -1032,17 +1057,7 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
this.Invoke("AddAuthoritativeDomain", new object[] {
|
this.Invoke("AddAuthoritativeDomain", new object[] {
|
||||||
domain});
|
domain});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ChangeAcceptedDomainType", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
|
||||||
public void ChangeAcceptedDomainType(string domain, ExchangeAcceptedDomainType domainType)
|
|
||||||
{
|
|
||||||
this.Invoke("ChangeAcceptedDomainType", new object[] {
|
|
||||||
domain,
|
|
||||||
domainType});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public System.IAsyncResult BeginAddAuthoritativeDomain(string domain, System.AsyncCallback callback, object asyncState) {
|
public System.IAsyncResult BeginAddAuthoritativeDomain(string domain, System.AsyncCallback callback, object asyncState) {
|
||||||
return this.BeginInvoke("AddAuthoritativeDomain", new object[] {
|
return this.BeginInvoke("AddAuthoritativeDomain", new object[] {
|
||||||
|
@ -1075,6 +1090,49 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ChangeAcceptedDomainType", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void ChangeAcceptedDomainType(string domain, ExchangeAcceptedDomainType domainType) {
|
||||||
|
this.Invoke("ChangeAcceptedDomainType", new object[] {
|
||||||
|
domain,
|
||||||
|
domainType});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginChangeAcceptedDomainType(string domain, ExchangeAcceptedDomainType domainType, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("ChangeAcceptedDomainType", new object[] {
|
||||||
|
domain,
|
||||||
|
domainType}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndChangeAcceptedDomainType(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void ChangeAcceptedDomainTypeAsync(string domain, ExchangeAcceptedDomainType domainType) {
|
||||||
|
this.ChangeAcceptedDomainTypeAsync(domain, domainType, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void ChangeAcceptedDomainTypeAsync(string domain, ExchangeAcceptedDomainType domainType, object userState) {
|
||||||
|
if ((this.ChangeAcceptedDomainTypeOperationCompleted == null)) {
|
||||||
|
this.ChangeAcceptedDomainTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeAcceptedDomainTypeOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("ChangeAcceptedDomainType", new object[] {
|
||||||
|
domain,
|
||||||
|
domainType}, this.ChangeAcceptedDomainTypeOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnChangeAcceptedDomainTypeOperationCompleted(object arg) {
|
||||||
|
if ((this.ChangeAcceptedDomainTypeCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.ChangeAcceptedDomainTypeCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetAuthoritativeDomains", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetAuthoritativeDomains", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
@ -1470,7 +1528,24 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetMailboxAdvancedSettings", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetMailboxAdvancedSettings", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB) {
|
public void SetMailboxAdvancedSettings(
|
||||||
|
string organizationId,
|
||||||
|
string accountName,
|
||||||
|
bool enablePOP,
|
||||||
|
bool enableIMAP,
|
||||||
|
bool enableOWA,
|
||||||
|
bool enableMAPI,
|
||||||
|
bool enableActiveSync,
|
||||||
|
long issueWarningKB,
|
||||||
|
long prohibitSendKB,
|
||||||
|
long prohibitSendReceiveKB,
|
||||||
|
int keepDeletedItemsDays,
|
||||||
|
int maxRecipients,
|
||||||
|
int maxSendMessageSizeKB,
|
||||||
|
int maxReceiveMessageSizeKB,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning) {
|
||||||
this.Invoke("SetMailboxAdvancedSettings", new object[] {
|
this.Invoke("SetMailboxAdvancedSettings", new object[] {
|
||||||
organizationId,
|
organizationId,
|
||||||
accountName,
|
accountName,
|
||||||
|
@ -1485,7 +1560,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
keepDeletedItemsDays,
|
keepDeletedItemsDays,
|
||||||
maxRecipients,
|
maxRecipients,
|
||||||
maxSendMessageSizeKB,
|
maxSendMessageSizeKB,
|
||||||
maxReceiveMessageSizeKB});
|
maxReceiveMessageSizeKB,
|
||||||
|
enabledLitigationHold,
|
||||||
|
recoverabelItemsSpace,
|
||||||
|
recoverabelItemsWarning});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -1504,6 +1582,9 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
int maxRecipients,
|
int maxRecipients,
|
||||||
int maxSendMessageSizeKB,
|
int maxSendMessageSizeKB,
|
||||||
int maxReceiveMessageSizeKB,
|
int maxReceiveMessageSizeKB,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning,
|
||||||
System.AsyncCallback callback,
|
System.AsyncCallback callback,
|
||||||
object asyncState) {
|
object asyncState) {
|
||||||
return this.BeginInvoke("SetMailboxAdvancedSettings", new object[] {
|
return this.BeginInvoke("SetMailboxAdvancedSettings", new object[] {
|
||||||
|
@ -1520,7 +1601,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
keepDeletedItemsDays,
|
keepDeletedItemsDays,
|
||||||
maxRecipients,
|
maxRecipients,
|
||||||
maxSendMessageSizeKB,
|
maxSendMessageSizeKB,
|
||||||
maxReceiveMessageSizeKB}, callback, asyncState);
|
maxReceiveMessageSizeKB,
|
||||||
|
enabledLitigationHold,
|
||||||
|
recoverabelItemsSpace,
|
||||||
|
recoverabelItemsWarning}, callback, asyncState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -1529,12 +1613,47 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void SetMailboxAdvancedSettingsAsync(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB) {
|
public void SetMailboxAdvancedSettingsAsync(
|
||||||
this.SetMailboxAdvancedSettingsAsync(organizationId, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync, issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, null);
|
string organizationId,
|
||||||
|
string accountName,
|
||||||
|
bool enablePOP,
|
||||||
|
bool enableIMAP,
|
||||||
|
bool enableOWA,
|
||||||
|
bool enableMAPI,
|
||||||
|
bool enableActiveSync,
|
||||||
|
long issueWarningKB,
|
||||||
|
long prohibitSendKB,
|
||||||
|
long prohibitSendReceiveKB,
|
||||||
|
int keepDeletedItemsDays,
|
||||||
|
int maxRecipients,
|
||||||
|
int maxSendMessageSizeKB,
|
||||||
|
int maxReceiveMessageSizeKB,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning) {
|
||||||
|
this.SetMailboxAdvancedSettingsAsync(organizationId, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync, issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, enabledLitigationHold, recoverabelItemsSpace, recoverabelItemsWarning, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void SetMailboxAdvancedSettingsAsync(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, object userState) {
|
public void SetMailboxAdvancedSettingsAsync(
|
||||||
|
string organizationId,
|
||||||
|
string accountName,
|
||||||
|
bool enablePOP,
|
||||||
|
bool enableIMAP,
|
||||||
|
bool enableOWA,
|
||||||
|
bool enableMAPI,
|
||||||
|
bool enableActiveSync,
|
||||||
|
long issueWarningKB,
|
||||||
|
long prohibitSendKB,
|
||||||
|
long prohibitSendReceiveKB,
|
||||||
|
int keepDeletedItemsDays,
|
||||||
|
int maxRecipients,
|
||||||
|
int maxSendMessageSizeKB,
|
||||||
|
int maxReceiveMessageSizeKB,
|
||||||
|
bool enabledLitigationHold,
|
||||||
|
long recoverabelItemsSpace,
|
||||||
|
long recoverabelItemsWarning,
|
||||||
|
object userState) {
|
||||||
if ((this.SetMailboxAdvancedSettingsOperationCompleted == null)) {
|
if ((this.SetMailboxAdvancedSettingsOperationCompleted == null)) {
|
||||||
this.SetMailboxAdvancedSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetMailboxAdvancedSettingsOperationCompleted);
|
this.SetMailboxAdvancedSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetMailboxAdvancedSettingsOperationCompleted);
|
||||||
}
|
}
|
||||||
|
@ -1552,7 +1671,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
keepDeletedItemsDays,
|
keepDeletedItemsDays,
|
||||||
maxRecipients,
|
maxRecipients,
|
||||||
maxSendMessageSizeKB,
|
maxSendMessageSizeKB,
|
||||||
maxReceiveMessageSizeKB}, this.SetMailboxAdvancedSettingsOperationCompleted, userState);
|
maxReceiveMessageSizeKB,
|
||||||
|
enabledLitigationHold,
|
||||||
|
recoverabelItemsSpace,
|
||||||
|
recoverabelItemsWarning}, this.SetMailboxAdvancedSettingsOperationCompleted, userState);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSetMailboxAdvancedSettingsOperationCompleted(object arg) {
|
private void OnSetMailboxAdvancedSettingsOperationCompleted(object arg) {
|
||||||
|
@ -4102,6 +4224,10 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void AddAuthoritativeDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void AddAuthoritativeDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void ChangeAcceptedDomainTypeCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void GetAuthoritativeDomainsCompletedEventHandler(object sender, GetAuthoritativeDomainsCompletedEventArgs e);
|
public delegate void GetAuthoritativeDomainsCompletedEventHandler(object sender, GetAuthoritativeDomainsCompletedEventArgs e);
|
||||||
|
|
|
@ -131,6 +131,12 @@ namespace WebsitePanel.Providers.OS {
|
||||||
private System.Threading.SendOrPostCallback UpdateDSNOperationCompleted;
|
private System.Threading.SendOrPostCallback UpdateDSNOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted;
|
private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SetQuotaLimitOnFolderOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback DeleteDirectoryRecursiveOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback CheckFileServicesInstallationOperationCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public OperatingSystem() {
|
public OperatingSystem() {
|
||||||
|
@ -247,6 +253,16 @@ namespace WebsitePanel.Providers.OS {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event DeleteDSNCompletedEventHandler DeleteDSNCompleted;
|
public event DeleteDSNCompletedEventHandler DeleteDSNCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SetQuotaLimitOnFolderCompletedEventHandler SetQuotaLimitOnFolderCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event DeleteDirectoryRecursiveCompletedEventHandler DeleteDirectoryRecursiveCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event CheckFileServicesInstallationCompletedEventHandler CheckFileServicesInstallationCompleted;
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
@ -1592,7 +1608,154 @@ namespace WebsitePanel.Providers.OS {
|
||||||
this.ExecuteSyncActionsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
this.ExecuteSyncActionsCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/SetQuotaLimitOnFolder", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public bool SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("SetQuotaLimitOnFolder", new object[] {
|
||||||
|
folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword});
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSetQuotaLimitOnFolder(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword, System.AsyncCallback callback, object asyncState)
|
||||||
|
{
|
||||||
|
return this.BeginInvoke("SetQuotaLimitOnFolder", new object[] {
|
||||||
|
folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool EndSetQuotaLimitOnFolder(System.IAsyncResult asyncResult)
|
||||||
|
{
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword)
|
||||||
|
{
|
||||||
|
this.SetQuotaLimitOnFolderAsync(folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SetQuotaLimitOnFolderAsync(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword, object userState)
|
||||||
|
{
|
||||||
|
if ((this.SetQuotaLimitOnFolderOperationCompleted == null))
|
||||||
|
{
|
||||||
|
this.SetQuotaLimitOnFolderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetQuotaLimitOnFolderOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SetQuotaLimitOnFolder", new object[] {
|
||||||
|
folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword}, this.SetQuotaLimitOnFolderOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSetQuotaLimitOnFolderOperationCompleted(object arg)
|
||||||
|
{
|
||||||
|
if ((this.SetQuotaLimitOnFolderCompleted != null))
|
||||||
|
{
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SetQuotaLimitOnFolderCompleted(this, new SetQuotaLimitOnFolderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/DeleteDirectoryRecursive", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public bool DeleteDirectoryRecursive(string rootPath)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("DeleteDirectoryRecursive", new object[] {
|
||||||
|
rootPath });
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginDeleteDirectoryRecursive(string rootPath, System.AsyncCallback callback, object asyncState)
|
||||||
|
{
|
||||||
|
return this.BeginInvoke("DeleteDirectoryRecursive", new object[] {
|
||||||
|
rootPath}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool EndDeleteDirectoryRecursive(System.IAsyncResult asyncResult)
|
||||||
|
{
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void DeleteDirectoryRecursiveAsync(string rootPath)
|
||||||
|
{
|
||||||
|
this.DeleteDirectoryRecursiveAsync(rootPath, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void DeleteDirectoryRecursiveAsync(string rootPath, object userState)
|
||||||
|
{
|
||||||
|
if ((this.DeleteDirectoryRecursiveOperationCompleted == null))
|
||||||
|
{
|
||||||
|
this.DeleteDirectoryRecursiveOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteDirectoryRecursiveOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("DeleteDirectoryRecursive", new object[] {
|
||||||
|
rootPath}, this.DeleteDirectoryRecursiveOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDeleteDirectoryRecursiveOperationCompleted(object arg)
|
||||||
|
{
|
||||||
|
if ((this.DeleteDirectoryRecursiveCompleted != null))
|
||||||
|
{
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.DeleteDirectoryRecursiveCompleted(this, new DeleteDirectoryRecursiveCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckFileServicesInstallation", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public bool CheckFileServicesInstallation()
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("CheckFileServicesInstallation", new object[0]);
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginCheckFileServicesInstallation(System.AsyncCallback callback, object asyncState)
|
||||||
|
{
|
||||||
|
return this.BeginInvoke("CheckFileServicesInstallation", new object[0], callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool EndCheckFileServicesInstallation(System.IAsyncResult asyncResult)
|
||||||
|
{
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void CheckFileServicesInstallationAsync()
|
||||||
|
{
|
||||||
|
this.CheckFileServicesInstallationAsync(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void CheckFileServicesInstallationAsync(object userState)
|
||||||
|
{
|
||||||
|
if ((this.CheckFileServicesInstallationOperationCompleted == null))
|
||||||
|
{
|
||||||
|
this.CheckFileServicesInstallationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckFileServicesInstallationOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("CheckFileServicesInstallation", new object[0], this.CheckFileServicesInstallationOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCheckFileServicesInstallationOperationCompleted(object arg)
|
||||||
|
{
|
||||||
|
if ((this.CheckFileServicesInstallationCompleted != null))
|
||||||
|
{
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.CheckFileServicesInstallationCompleted(this, new CheckFileServicesInstallationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetInstalledOdbcDrivers", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetInstalledOdbcDrivers", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
@ -2391,4 +2554,95 @@ namespace WebsitePanel.Providers.OS {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
public delegate void DeleteDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void DeleteDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
public delegate void SetQuotaLimitOnFolderCompletedEventHandler(object sender, SetQuotaLimitOnFolderCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class SetQuotaLimitOnFolderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
||||||
|
{
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal SetQuotaLimitOnFolderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState)
|
||||||
|
{
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool Result
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((bool)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
public delegate void CheckFileServicesInstallationCompletedEventHandler(object sender, CheckFileServicesInstallationCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class CheckFileServicesInstallationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
||||||
|
{
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal CheckFileServicesInstallationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState)
|
||||||
|
{
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool Result
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((bool)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
public delegate void DeleteDirectoryRecursiveCompletedEventHandler(object sender, DeleteDirectoryRecursiveCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class DeleteDirectoryRecursiveCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
|
||||||
|
{
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal DeleteDirectoryRecursiveCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState)
|
||||||
|
{
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool Result
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((bool)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ using System.Collections.Generic;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Ionic.Zip;
|
using Ionic.Zip;
|
||||||
using WebsitePanel.Providers.OS;
|
using WebsitePanel.Providers.OS;
|
||||||
|
using System.Management;
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.Utils
|
namespace WebsitePanel.Providers.Utils
|
||||||
{
|
{
|
||||||
|
@ -844,6 +845,126 @@ namespace WebsitePanel.Providers.Utils
|
||||||
conn, null);
|
conn, null);
|
||||||
cat = null;
|
cat = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void DeleteDirectoryRecursive(string rootPath)
|
||||||
|
{
|
||||||
|
// This code is done this way to force folder deletion
|
||||||
|
// even if the folder was opened
|
||||||
|
|
||||||
|
DirectoryInfo treeRoot = new DirectoryInfo(rootPath);
|
||||||
|
if (treeRoot.Exists)
|
||||||
|
{
|
||||||
|
|
||||||
|
DirectoryInfo[] dirs = treeRoot.GetDirectories();
|
||||||
|
while (dirs.Length > 0)
|
||||||
|
{
|
||||||
|
foreach (DirectoryInfo dir in dirs)
|
||||||
|
DeleteDirectoryRecursive(dir.FullName);
|
||||||
|
|
||||||
|
dirs = treeRoot.GetDirectories();
|
||||||
|
}
|
||||||
|
|
||||||
|
// DELETE THE FILES UNDER THE CURRENT ROOT
|
||||||
|
string[] files = Directory.GetFiles(treeRoot.FullName);
|
||||||
|
foreach (string file in files)
|
||||||
|
{
|
||||||
|
File.SetAttributes(file, FileAttributes.Normal);
|
||||||
|
File.Delete(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
Directory.Delete(treeRoot.FullName, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword)
|
||||||
|
{
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string[] splits = folderPath.Split('\\');
|
||||||
|
if (splits.Length > 0)
|
||||||
|
{
|
||||||
|
// bat file pat
|
||||||
|
string cmdFilePath = @"\\" + splits[2] + @"\" + splits[3] + @"\" + "Process.bat";
|
||||||
|
|
||||||
|
// Creating the BAT file
|
||||||
|
FileStream fs = File.Create(cmdFilePath);
|
||||||
|
if (fs != null)
|
||||||
|
{
|
||||||
|
fs.Close();
|
||||||
|
fs.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
StreamWriter swr = new StreamWriter(cmdFilePath);
|
||||||
|
|
||||||
|
if (swr != null)
|
||||||
|
{
|
||||||
|
swr.WriteLine(@"cd c:\windows\system32");
|
||||||
|
|
||||||
|
string sharePath = String.Empty;
|
||||||
|
|
||||||
|
if (splits.Length > 4)
|
||||||
|
{
|
||||||
|
// Form the share physicalPath
|
||||||
|
sharePath = shareNameDrive + @":\" + splits[3];
|
||||||
|
|
||||||
|
if (splits.Length == 5 && !quotaLimit.Equals(String.Empty))
|
||||||
|
{
|
||||||
|
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
// Set
|
||||||
|
case 0:
|
||||||
|
// Delete the quota in case one exists
|
||||||
|
swr.WriteLine(@"dirquota quota delete /path:" + sharePath + @"\" + splits[4] + @" /remote:" + splits[2] + @" /quiet");
|
||||||
|
swr.WriteLine(@"dirquota quota add /path:" + sharePath + @"\" + splits[4] + @" /limit:" + quotaLimit + @" /remote:" + splits[2]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Modify
|
||||||
|
case 1: swr.WriteLine(@"dirquota quota modify /path:" + sharePath + @"\" + splits[4] + @" /limit:" + quotaLimit + @" /remote:" + splits[2]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
swr.Flush();
|
||||||
|
swr.Close();
|
||||||
|
swr.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
ConnectionOptions connOptions = new ConnectionOptions();
|
||||||
|
|
||||||
|
if (wmiUserName.Length > 0)
|
||||||
|
{
|
||||||
|
connOptions.Username = wmiUserName;
|
||||||
|
connOptions.Password = wmiPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
connOptions.Impersonation = ImpersonationLevel.Impersonate;
|
||||||
|
|
||||||
|
connOptions.EnablePrivileges = true;
|
||||||
|
|
||||||
|
ManagementScope manScope =
|
||||||
|
new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", splits[2]), connOptions);
|
||||||
|
manScope.Connect();
|
||||||
|
|
||||||
|
ObjectGetOptions objectGetOptions = new ObjectGetOptions();
|
||||||
|
ManagementPath managementPath = new ManagementPath("Win32_Process");
|
||||||
|
ManagementClass processClass = new ManagementClass(manScope, managementPath, objectGetOptions);
|
||||||
|
|
||||||
|
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
|
||||||
|
inParams["CommandLine"] = cmdFilePath;
|
||||||
|
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
|
||||||
#region Advanced Delete
|
#region Advanced Delete
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Deletes the specified file.
|
/// Deletes the specified file.
|
||||||
|
|
|
@ -30,6 +30,8 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Management;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.Server.Utils
|
namespace WebsitePanel.Server.Utils
|
||||||
{
|
{
|
||||||
|
@ -402,6 +404,22 @@ namespace WebsitePanel.Server.Utils
|
||||||
{
|
{
|
||||||
return Environment.GetEnvironmentVariable("windir");
|
return Environment.GetEnvironmentVariable("windir");
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Checks Whether the FSRM role services are installed
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool CheckFileServicesInstallation()
|
||||||
|
{
|
||||||
|
|
||||||
|
ManagementClass objMC = new ManagementClass("Win32_ServerFeature");
|
||||||
|
ManagementObjectCollection objMOC = objMC.GetInstances();
|
||||||
|
foreach (ManagementObject objMO in objMOC)
|
||||||
|
if (objMO.Properties["Name"].Value.ToString().ToLower().Contains("file server resource manager"))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,9 @@ EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail.SmarterMail6", "WebsitePanel.Providers.Mail.SmarterMail6\WebsitePanel.Providers.Mail.SmarterMail6.csproj", "{88E9734F-2066-4674-AA5B-F1A772436F04}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail.SmarterMail6", "WebsitePanel.Providers.Mail.SmarterMail6\WebsitePanel.Providers.Mail.SmarterMail6.csproj", "{88E9734F-2066-4674-AA5B-F1A772436F04}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.Merak10", "WebsitePanel.Providers.Mail.Merak10\WebsitePanel.Providers.Mail.Merak10.vbproj", "{7105A714-FF61-46B2-A16E-F4CBAD71BF02}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.Merak10", "WebsitePanel.Providers.Mail.Merak10\WebsitePanel.Providers.Mail.Merak10.vbproj", "{7105A714-FF61-46B2-A16E-F4CBAD71BF02}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{E91E52F3-9555-4D00-B577-2B1DBDD87CA7} = {E91E52F3-9555-4D00-B577-2B1DBDD87CA7}
|
||||||
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.hMailServer5", "WebsitePanel.Providers.Mail.hMail5\WebsitePanel.Providers.Mail.hMailServer5.vbproj", "{8F644D50-D602-4AD3-8EB0-CA3C3676B18D}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.hMailServer5", "WebsitePanel.Providers.Mail.hMail5\WebsitePanel.Providers.Mail.hMailServer5.vbproj", "{8F644D50-D602-4AD3-8EB0-CA3C3676B18D}"
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -111,6 +114,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Web.
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.IIs80", "WebsitePanel.Providers.FTP.IIs80\WebsitePanel.Providers.FTP.IIs80.csproj", "{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.IIs80", "WebsitePanel.Providers.FTP.IIs80\WebsitePanel.Providers.FTP.IIs80.csproj", "{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.HostedSolution.Exchange2013", "WebsitePanel.Providers.HostedSolution.Exchange2013\WebsitePanel.Providers.HostedSolution.Exchange2013.csproj", "{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{684C932A-6C75-46AC-A327-F3689D89EB42} = {684C932A-6C75-46AC-A327-F3689D89EB42}
|
||||||
|
{A06DE5E4-4331-47E1-8F46-7B846146B559} = {A06DE5E4-4331-47E1-8F46-7B846146B559}
|
||||||
|
{E91E52F3-9555-4D00-B577-2B1DBDD87CA7} = {E91E52F3-9555-4D00-B577-2B1DBDD87CA7}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -611,6 +621,16 @@ Global
|
||||||
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|x86.ActiveCfg = Release|Any CPU
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
@ -93,7 +93,7 @@ namespace WebsitePanel.Server
|
||||||
string accountName, bool enablePOP, bool enableIMAP,
|
string accountName, bool enablePOP, bool enableIMAP,
|
||||||
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays,
|
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays,
|
||||||
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool isConsumer)
|
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool isConsumer, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -104,7 +104,7 @@ namespace WebsitePanel.Server
|
||||||
enableOWA, enableMAPI, enableActiveSync,
|
enableOWA, enableMAPI, enableActiveSync,
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB,
|
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB,
|
||||||
keepDeletedItemsDays,
|
keepDeletedItemsDays,
|
||||||
maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook, isConsumer);
|
maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook, isConsumer, enabledLitigationHold, recoverabelItemsSpace, recoverabelItemsWarning);
|
||||||
LogEnd("CreateMailEnableUser");
|
LogEnd("CreateMailEnableUser");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -316,33 +316,6 @@ namespace WebsitePanel.Server
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mailboxes
|
#region Mailboxes
|
||||||
/*
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
|
||||||
public string CreateMailbox(string organizationId, string organizationDistinguishedName, string mailboxDatabase,
|
|
||||||
string securityGroup, string offlineAddressBook, string addressBookPolicy, ExchangeAccountType accountType,
|
|
||||||
string displayName, string accountName, string name,
|
|
||||||
string domain, string password, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
LogStart("CreateMailbox");
|
|
||||||
string ret = ES.CreateMailbox(organizationId, organizationDistinguishedName, mailboxDatabase, securityGroup,
|
|
||||||
offlineAddressBook, addressBookPolicy, accountType,
|
|
||||||
displayName, accountName, name, domain, password, enablePOP, enableIMAP,
|
|
||||||
enableOWA, enableMAPI, enableActiveSync,
|
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays,
|
|
||||||
maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook);
|
|
||||||
LogEnd("CreateMailbox");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
LogError("CreateMailbox", ex);
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void DeleteMailbox(string accountName)
|
public void DeleteMailbox(string accountName)
|
||||||
{
|
{
|
||||||
|
@ -461,13 +434,15 @@ namespace WebsitePanel.Server
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
public void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB)
|
long issueWarningKB, long prohibitSendKB, long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB
|
||||||
|
, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetMailboxAdvancedSettings");
|
LogStart("SetMailboxAdvancedSettings");
|
||||||
ES.SetMailboxAdvancedSettings(organizationId, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync,
|
ES.SetMailboxAdvancedSettings(organizationId, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync,
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB);
|
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB,
|
||||||
|
enabledLitigationHold, recoverabelItemsSpace, recoverabelItemsWarning);
|
||||||
LogEnd("SetMailboxAdvancedSettings");
|
LogEnd("SetMailboxAdvancedSettings");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
|
@ -533,6 +533,55 @@ namespace WebsitePanel.Server
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void SetQuotaLimitOnFolder(string folderPath, string shareNameDrive, string quotaLimit, int mode, string wmiUserName, string wmiPassword)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' SetQuotaLimitOnFolder", ProviderSettings.ProviderName);
|
||||||
|
OsProvider.SetQuotaLimitOnFolder(folderPath, shareNameDrive, quotaLimit, mode, wmiUserName, wmiPassword);
|
||||||
|
Log.WriteEnd("'{0}' SetQuotaLimitOnFolder", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' SetQuotaLimitOnFolder", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void DeleteDirectoryRecursive(string rootPath)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' DeleteDirectoryRecursive", ProviderSettings.ProviderName);
|
||||||
|
OsProvider.DeleteDirectoryRecursive(rootPath);
|
||||||
|
Log.WriteEnd("'{0}' DeleteDirectoryRecursive", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' DeleteDirectoryRecursive", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public bool CheckFileServicesInstallation()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("'{0}' CheckFileServicesInstallation", ProviderSettings.ProviderName);
|
||||||
|
return OsProvider.CheckFileServicesInstallation();
|
||||||
|
Log.WriteEnd("'{0}' CheckFileServicesInstallation", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("'{0}' CheckFileServicesInstallation", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Synchronizing
|
#region Synchronizing
|
||||||
|
|
|
@ -76,6 +76,9 @@
|
||||||
<MenuItem pageID="SpaceWebApplicationsGallery" resourceGroup="Web" quota="Web.WebAppGallery"/>
|
<MenuItem pageID="SpaceWebApplicationsGallery" resourceGroup="Web" quota="Web.WebAppGallery"/>
|
||||||
<MenuItem pageID="SpaceApplicationsInstaller" resourceGroup="OS" quota="OS.AppInstaller"/>
|
<MenuItem pageID="SpaceApplicationsInstaller" resourceGroup="OS" quota="OS.AppInstaller"/>
|
||||||
<MenuItem pageID="SpaceScheduledTasks" resourceGroup="OS" quota="OS.ScheduledTasks"/>
|
<MenuItem pageID="SpaceScheduledTasks" resourceGroup="OS" quota="OS.ScheduledTasks"/>
|
||||||
|
<!--CO Changes-->
|
||||||
|
<MenuItem pageID="SpaceApplyEnableHardQuotaFeature" resourceGroup="OS" quota=""/>
|
||||||
|
<!--END-->
|
||||||
<!--MenuItem url="http://phpmysqladmin.com" title="phpMyAdmin" target="_blank"
|
<!--MenuItem url="http://phpmysqladmin.com" title="phpMyAdmin" target="_blank"
|
||||||
resourceGroup="MySQL4"/-->
|
resourceGroup="MySQL4"/-->
|
||||||
</ModuleData>
|
</ModuleData>
|
||||||
|
|
|
@ -594,4 +594,12 @@
|
||||||
|
|
||||||
</Controls>
|
</Controls>
|
||||||
</ModuleDefinition>
|
</ModuleDefinition>
|
||||||
|
|
||||||
|
<!-- CO Chnages-->
|
||||||
|
<ModuleDefinition id="ApplyEnableHardQuotaFeature">
|
||||||
|
<Controls>
|
||||||
|
<Control key="" src="WebsitePanel/ApplyEnableHardQuotaFeature.ascx" title="ApplyEnableHardQuotaFeature" type="View" icon="calendar_month_2_clock_48.png" />
|
||||||
|
</Controls>
|
||||||
|
</ModuleDefinition>
|
||||||
|
<!--END-->
|
||||||
</ModuleDefinitions>
|
</ModuleDefinitions>
|
|
@ -566,4 +566,17 @@
|
||||||
</Pages>
|
</Pages>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
||||||
|
<!-- CO Changes -->
|
||||||
|
<Page name="SpaceApplyEnableHardQuotaFeature" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
|
||||||
|
<Content id="LeftPane">
|
||||||
|
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
|
||||||
|
<ModuleData ref="SpaceMenu"/>
|
||||||
|
</Module>
|
||||||
|
</Content>
|
||||||
|
<Content id="ContentPane">
|
||||||
|
<Module moduleDefinitionID="ApplyEnableHardQuotaFeature" title="ApplyEnableHardQuotaFeature" icon="cabinet_48.png" readOnlyRoles="PlatformCSR,ResellerCSR"/>
|
||||||
|
</Content>
|
||||||
|
</Page>
|
||||||
|
<!--END-->
|
||||||
|
|
||||||
</Pages>
|
</Pages>
|
||||||
|
|
|
@ -762,10 +762,13 @@
|
||||||
<data name="ModuleTitle.SystemCenterServerAddresses" xml:space="preserve">
|
<data name="ModuleTitle.SystemCenterServerAddresses" xml:space="preserve">
|
||||||
<value>System Center Server Addresses</value>
|
<value>System Center Server Addresses</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ModuleTitle.UserAccountVLanCreate" xml:space="preserve">
|
<data name="ModuleTitle.UserAccountVLanCreate" xml:space="preserve">
|
||||||
<value>Add VLan to user</value>
|
<value>Add VLan to user</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ModuleTitle.SetupControlPanelAccounts" xml:space="preserve">
|
<data name="ModuleTitle.SetupControlPanelAccounts" xml:space="preserve">
|
||||||
<value>Setup WebsitePanel Accounts</value>
|
<value>Setup WebsitePanel Accounts</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ModuleTitle.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
|
<value>System Hard Quota</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -459,4 +459,7 @@
|
||||||
<data name="PageTitle.SpaceVPSForPC" xml:space="preserve">
|
<data name="PageTitle.SpaceVPSForPC" xml:space="preserve">
|
||||||
<value>{user} - {space} - Virtual Private Servers for Private Cloud</value>
|
<value>{user} - {space} - Virtual Private Servers for Private Cloud</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="PageName.SpaceApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
|
<value>System Hard Quota</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -2124,7 +2124,6 @@
|
||||||
<data name="ServiceItemType.HostHeader" xml:space="preserve">
|
<data name="ServiceItemType.HostHeader" xml:space="preserve">
|
||||||
<value>Web Site Host Header</value>
|
<value>Web Site Host Header</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<data name="AuditLogSource.APP_INSTALLER" xml:space="preserve">
|
<data name="AuditLogSource.APP_INSTALLER" xml:space="preserve">
|
||||||
<value>Applications Installer</value>
|
<value>Applications Installer</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5269,4 +5268,10 @@
|
||||||
<data name="Success.WEB_SWITCH_TO_SHARED_IP" xml:space="preserve">
|
<data name="Success.WEB_SWITCH_TO_SHARED_IP" xml:space="preserve">
|
||||||
<value>Web site has been updated to shared IP</value>
|
<value>Web site has been updated to shared IP</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Warning.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
|
<value>Apply Enable Hard Quota Feature</value>
|
||||||
|
</data>
|
||||||
|
<data name="WarningDescription.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
|
<value>By clicking on the button 'Apply', you will apply the respective hard quota on each provisioned home folder. Note that this may take some time.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -228,4 +228,16 @@
|
||||||
<data name="btnUpdateMailboxPlan.Text" xml:space="preserve">
|
<data name="btnUpdateMailboxPlan.Text" xml:space="preserve">
|
||||||
<value>Update Mailbox Plan</value>
|
<value>Update Mailbox Plan</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkEnableLitigationHold.Text" xml:space="preserve">
|
||||||
|
<value>Enable Litigation Hold</value>
|
||||||
|
</data>
|
||||||
|
<data name="locRecoverableItemsSpace.Text" xml:space="preserve">
|
||||||
|
<value>Recoverable Items Space (Mb):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locRecoverableItemsWarning.Text" xml:space="preserve">
|
||||||
|
<value>Warning at:</value>
|
||||||
|
</data>
|
||||||
|
<data name="secLitigationHold.Text" xml:space="preserve">
|
||||||
|
<value>Litigation Hold</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -486,4 +486,7 @@ To connect to web site management service please use username and password provi
|
||||||
<data name="locSharedIPAddress.Text" xml:space="preserve">
|
<data name="locSharedIPAddress.Text" xml:space="preserve">
|
||||||
<value>IP address: Shared</value>
|
<value>IP address: Shared</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkDeleteWebsiteDirectory.Text" xml:space="preserve">
|
||||||
|
<value>Force delete website directory?</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ApplyEnableHardQuotaFeature.ascx.cs" Inherits="WebsitePanel.Portal.ApplyEnableHardQuotaFeature" %>
|
||||||
|
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="messageBox" TagPrefix="uc4" %>
|
||||||
|
|
||||||
|
<div class="FormBody">
|
||||||
|
<table cellspacing="0" cellpadding="4" width="100%">
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="Normal">
|
||||||
|
<uc4:messageBox id="messageBox" runat="server" >
|
||||||
|
</uc4:messageBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="FormFooter">
|
||||||
|
<asp:Button ID="btnUpdate" runat="server" meta:resourcekey="btnUpdate" CssClass="Button1" Text="Apply" OnClick="btnUpdate_Click"></asp:Button>
|
||||||
|
|
||||||
|
</div>
|
|
@ -0,0 +1,74 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.EnterpriseServer.Base.Scheduling;
|
||||||
|
using WebsitePanel.Portal.Code.Framework;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class ApplyEnableHardQuotaFeature : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
|
||||||
|
public int PackageId
|
||||||
|
{
|
||||||
|
get { return PanelSecurity.PackageId; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
messageBox.ShowWarningMessage("ApplyEnableHardQuotaFeature");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ES.Services.Files.ApplyEnableHardQuotaFeature(PackageId);
|
||||||
|
// redirect
|
||||||
|
Response.Redirect(NavigatePageURL("SpaceHome", "SpaceID", PackageId.ToString()));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("APPLY_QUOTA", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void btnUpdate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class ApplyEnableHardQuotaFeature {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnUpdate control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnUpdate;
|
||||||
|
}
|
||||||
|
}
|
|
@ -198,4 +198,16 @@
|
||||||
<data name="valRequireMailboxPlan.Text" xml:space="preserve">
|
<data name="valRequireMailboxPlan.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkEnableLitigationHold.Text" xml:space="preserve">
|
||||||
|
<value>Enable Litigation Hold</value>
|
||||||
|
</data>
|
||||||
|
<data name="locRecoverableItemsSpace.Text" xml:space="preserve">
|
||||||
|
<value>Recoverable Items Space (Mb):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locRecoverableItemsWarning.Text" xml:space="preserve">
|
||||||
|
<value>Warning at:</value>
|
||||||
|
</data>
|
||||||
|
<data name="secLitigationHold.Text" xml:space="preserve">
|
||||||
|
<value>Litigation Hold</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -159,4 +159,13 @@
|
||||||
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkEnableLitigationHold.Text" xml:space="preserve">
|
||||||
|
<value>Enable Litigation Hold</value>
|
||||||
|
</data>
|
||||||
|
<data name="locLitigationHoldSpace.Text" xml:space="preserve">
|
||||||
|
<value>Litigation Hold Space:</value>
|
||||||
|
</data>
|
||||||
|
<data name="secLitigationHoldSettings.Text" xml:space="preserve">
|
||||||
|
<value>Litigation Hold Settings</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -91,7 +91,6 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secStorageQuotas" runat="server"
|
<wsp:CollapsiblePanel id="secStorageQuotas" runat="server"
|
||||||
|
@ -102,52 +101,46 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locMailboxSize" runat="server" meta:resourcekey="locMailboxSize" Text="Mailbox size:"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMailboxSize" runat="server" meta:resourcekey="locMailboxSize" Text="Mailbox size:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="Right">
|
|
||||||
<uc1:QuotaEditor id="mailboxSize" runat="server"
|
<uc1:QuotaEditor id="mailboxSize" runat="server"
|
||||||
QuotaTypeID="2"
|
QuotaTypeID="2"
|
||||||
QuotaValue="0"
|
QuotaValue="0"
|
||||||
ParentQuotaValue="-1">
|
ParentQuotaValue="-1">
|
||||||
</uc1:QuotaEditor>
|
</uc1:QuotaEditor>
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxRecipients" runat="server" meta:resourcekey="locMaxRecipients" Text="Maximum Recipients:"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxRecipients" runat="server" meta:resourcekey="locMaxRecipients" Text="Maximum Recipients:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="Right">
|
|
||||||
<uc1:QuotaEditor id="maxRecipients" runat="server"
|
<uc1:QuotaEditor id="maxRecipients" runat="server"
|
||||||
QuotaTypeID="2"
|
QuotaTypeID="2"
|
||||||
QuotaValue="0"
|
QuotaValue="0"
|
||||||
ParentQuotaValue="-1">
|
ParentQuotaValue="-1">
|
||||||
</uc1:QuotaEditor>
|
</uc1:QuotaEditor>
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxSendMessageSizeKB" runat="server" meta:resourcekey="locMaxSendMessageSizeKB" Text="Maximum Send Message Size (Kb):"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxSendMessageSizeKB" runat="server" meta:resourcekey="locMaxSendMessageSizeKB" Text="Maximum Send Message Size (Kb):"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="Right">
|
|
||||||
<uc1:QuotaEditor id="maxSendMessageSizeKB" runat="server"
|
<uc1:QuotaEditor id="maxSendMessageSizeKB" runat="server"
|
||||||
QuotaTypeID="2"
|
QuotaTypeID="2"
|
||||||
QuotaValue="0"
|
QuotaValue="0"
|
||||||
ParentQuotaValue="-1">
|
ParentQuotaValue="-1">
|
||||||
</uc1:QuotaEditor>
|
</uc1:QuotaEditor>
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxReceiveMessageSizeKB" runat="server" meta:resourcekey="locMaxReceiveMessageSizeKB" Text="Maximum Receive Message Size (Kb):"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxReceiveMessageSizeKB" runat="server" meta:resourcekey="locMaxReceiveMessageSizeKB" Text="Maximum Receive Message Size (Kb):"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="Right">
|
|
||||||
<uc1:QuotaEditor id="maxReceiveMessageSizeKB" runat="server"
|
<uc1:QuotaEditor id="maxReceiveMessageSizeKB" runat="server"
|
||||||
QuotaTypeID="2"
|
QuotaTypeID="2"
|
||||||
QuotaValue="0"
|
QuotaValue="0"
|
||||||
ParentQuotaValue="-1">
|
ParentQuotaValue="-1">
|
||||||
</uc1:QuotaEditor>
|
</uc1:QuotaEditor>
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" colspan="2"><asp:Localize ID="locWhenSizeExceeds" runat="server" meta:resourcekey="locWhenSizeExceeds" Text="When the mailbox size exceeds the indicated amount:"></asp:Localize></td>
|
<td class="FormLabel200" colspan="2"><asp:Localize ID="locWhenSizeExceeds" runat="server" meta:resourcekey="locWhenSizeExceeds" Text="When the mailbox size exceeds the indicated amount:"></asp:Localize></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -170,7 +163,6 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,9 +178,39 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secLitigationHold" runat="server"
|
||||||
|
TargetControlID="LitigationHold" meta:resourcekey="secLitigationHold" Text="LitigationHold">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="LitigationHold" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkEnableLitigationHold" runat="server" meta:resourcekey="chkEnableLitigationHold" Text="Enabled Litigation Hold"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locRecoverableItemsSpace" runat="server" meta:resourcekey="locRecoverableItemsSpace" Text="Recoverable Items Space (MB):"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<uc1:QuotaEditor id="recoverableItemsSpace" runat="server"
|
||||||
|
QuotaTypeID="2"
|
||||||
|
QuotaValue="0"
|
||||||
|
ParentQuotaValue="-1">
|
||||||
|
</uc1:QuotaEditor>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locRecoverableItemsWarning" runat="server" meta:resourcekey="locRecoverableItemsWarning" Text="Issue warning at:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SizeBox id="recoverableItemsWarning" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="true" RequireValidatorEnabled="true"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button id="btnAdd" runat="server" Text="Add Mailboxplan" CssClass="Button1" meta:resourcekey="btnAdd" ValidationGroup="CreateMailboxPlan" OnClick="btnAdd_Click" OnClientClick="ShowProgressDialog('Creating Mailboxplan...');"></asp:Button>
|
<asp:Button id="btnAdd" runat="server" Text="Add Mailboxplan" CssClass="Button1" meta:resourcekey="btnAdd" ValidationGroup="CreateMailboxPlan" OnClick="btnAdd_Click" OnClientClick="ShowProgressDialog('Creating Mailboxplan...');"></asp:Button>
|
||||||
|
|
|
@ -60,6 +60,11 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
sizeProhibitSendReceive.ValueKB = plan.ProhibitSendReceivePct;
|
sizeProhibitSendReceive.ValueKB = plan.ProhibitSendReceivePct;
|
||||||
daysKeepDeletedItems.ValueDays = plan.KeepDeletedItemsDays;
|
daysKeepDeletedItems.ValueDays = plan.KeepDeletedItemsDays;
|
||||||
chkHideFromAddressBook.Checked = plan.HideFromAddressBook;
|
chkHideFromAddressBook.Checked = plan.HideFromAddressBook;
|
||||||
|
chkEnableLitigationHold.Checked = plan.AllowLitigationHold;
|
||||||
|
recoverableItemsSpace.QuotaValue = plan.RecoverableItemsSpace;
|
||||||
|
recoverableItemsWarning.ValueKB = plan.RecoverableItemsWarningPct;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
txtMailboxPlan.Enabled = false;
|
txtMailboxPlan.Enabled = false;
|
||||||
|
@ -138,11 +143,17 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
daysKeepDeletedItems.ValueDays = quota.QuotaAllocatedValue;
|
daysKeepDeletedItems.ValueDays = quota.QuotaAllocatedValue;
|
||||||
daysKeepDeletedItems.RequireValidatorEnabled = true;
|
daysKeepDeletedItems.RequireValidatorEnabled = true;
|
||||||
break;
|
break;
|
||||||
|
case 420:
|
||||||
|
chkEnableLitigationHold.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
chkEnableLitigationHold.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sizeIssueWarning.ValueKB = 100;
|
sizeIssueWarning.ValueKB = 95;
|
||||||
sizeProhibitSend.ValueKB = 100;
|
sizeProhibitSend.ValueKB = 100;
|
||||||
sizeProhibitSendReceive.ValueKB = 100;
|
sizeProhibitSendReceive.ValueKB = 100;
|
||||||
|
recoverableItemsWarning.ValueKB = 95;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -183,6 +194,10 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
||||||
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
||||||
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
||||||
|
plan.AllowLitigationHold = chkEnableLitigationHold.Checked;
|
||||||
|
plan.RecoverableItemsSpace = recoverableItemsSpace.QuotaValue;
|
||||||
|
plan.RecoverableItemsWarningPct = recoverableItemsWarning.ValueKB;
|
||||||
|
if ((plan.RecoverableItemsWarningPct == 0)) plan.RecoverableItemsWarningPct = 100;
|
||||||
|
|
||||||
int result = ES.Services.ExchangeServer.AddExchangeMailboxPlan(PanelRequest.ItemID,
|
int result = ES.Services.ExchangeServer.AddExchangeMailboxPlan(PanelRequest.ItemID,
|
||||||
plan);
|
plan);
|
||||||
|
|
|
@ -1,4 +1,31 @@
|
||||||
//------------------------------------------------------------------------------
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
|
@ -381,6 +408,69 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secLitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secLitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel LitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkEnableLitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkEnableLitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locRecoverableItemsSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locRecoverableItemsSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// recoverableItemsSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor recoverableItemsSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locRecoverableItemsWarning control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locRecoverableItemsWarning;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// recoverableItemsWarning control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox recoverableItemsWarning;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAdd control.
|
/// btnAdd control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -32,9 +32,7 @@
|
||||||
<wsp:MailboxTabs id="tabs" runat="server" SelectedTab="mailbox_settings" />
|
<wsp:MailboxTabs id="tabs" runat="server" SelectedTab="mailbox_settings" />
|
||||||
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secGeneral" runat="server"
|
<wsp:CollapsiblePanel id="secGeneral" runat="server" TargetControlID="General" meta:resourcekey="secGeneral" Text="General"></wsp:CollapsiblePanel>
|
||||||
TargetControlID="General" meta:resourcekey="secGeneral" Text="General">
|
|
||||||
</wsp:CollapsiblePanel>
|
|
||||||
<asp:Panel ID="General" runat="server" Height="0" style="overflow:hidden;">
|
<asp:Panel ID="General" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<asp:UpdatePanel ID="GeneralUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
<asp:UpdatePanel ID="GeneralUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
|
@ -71,14 +69,35 @@
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secCalendarSettings" runat="server"
|
<wsp:CollapsiblePanel id="secLitigationHoldSettings" runat="server" TargetControlID="LitigationHoldSettings" meta:resourcekey="secGeneral" Text="General"></wsp:CollapsiblePanel>
|
||||||
TargetControlID="CalendarSettings" meta:resourcekey="secCalendarSettings" Text="General">
|
<asp:Panel ID="LitigationHoldSettings" runat="server" Height="0" style="overflow:hidden;">
|
||||||
</wsp:CollapsiblePanel>
|
<asp:UpdatePanel ID="LitigationHoldUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
|
<ContentTemplate>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkEnableLitigationHold" runat="server" meta:resourcekey="chkEnableLitigationHold" Text="Enable Litigation Hold" />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locLitigationHoldSpace" runat="server" meta:resourcekey="locLitigationHoldSpace" Text="Litigation Hold Space:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:QuotaViewer ID="litigationHoldSpace" runat="server" QuotaTypeId="2" DisplayGauge="true" /> MB
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</ContentTemplate>
|
||||||
|
</asp:UpdatePanel>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secCalendarSettings" runat="server" TargetControlID="CalendarSettings" meta:resourcekey="secCalendarSettings" Text="General"></wsp:CollapsiblePanel>
|
||||||
<asp:Panel ID="CalendarSettings" runat="server" Height="0" style="overflow:hidden;">
|
<asp:Panel ID="CalendarSettings" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<table>
|
<table>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
|
|
|
@ -50,8 +50,9 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
chkHideAddressBook.Visible = false;
|
chkHideAddressBook.Visible = false;
|
||||||
chkDisable.Visible = false;
|
chkDisable.Visible = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
secLitigationHoldSettings.Visible = (Utils.CheckQouta(Quotas.EXCHANGE2007_ALLOWLITIGATIONHOLD, cntx));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -99,10 +100,13 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
mailboxSize.QuotaUsedValue = Convert.ToInt32(stats.TotalSize / 1024 / 1024);
|
mailboxSize.QuotaUsedValue = Convert.ToInt32(stats.TotalSize / 1024 / 1024);
|
||||||
mailboxSize.QuotaValue = (stats.MaxSize == -1) ? -1: (int)Math.Round((double)(stats.MaxSize / 1024 / 1024));
|
mailboxSize.QuotaValue = (stats.MaxSize == -1) ? -1: (int)Math.Round((double)(stats.MaxSize / 1024 / 1024));
|
||||||
|
|
||||||
if ((account.AccountType == ExchangeAccountType.Equipment) | (account.AccountType == ExchangeAccountType.Room))
|
secCalendarSettings.Visible = ((account.AccountType == ExchangeAccountType.Equipment) | (account.AccountType == ExchangeAccountType.Room));
|
||||||
secCalendarSettings.Visible = true;
|
|
||||||
else
|
chkEnableLitigationHold.Checked = mailbox.EnableLitigationHold;
|
||||||
secCalendarSettings.Visible = false;
|
|
||||||
|
litigationHoldSpace.QuotaUsedValue = Convert.ToInt32(stats.LitigationHoldTotalSize / 1024 / 1024);
|
||||||
|
litigationHoldSpace.QuotaValue = (stats.LitigationHoldMaxSize == -1) ? -1 : (int)Math.Round((double)(stats.LitigationHoldMaxSize / 1024 / 1024));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,30 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -165,6 +192,60 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.QuotaViewer mailboxSize;
|
protected global::WebsitePanel.Portal.QuotaViewer mailboxSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secLitigationHoldSettings control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secLitigationHoldSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LitigationHoldSettings control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel LitigationHoldSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LitigationHoldUpdatePanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.UpdatePanel LitigationHoldUpdatePanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkEnableLitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkEnableLitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locLitigationHoldSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locLitigationHoldSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litigationHoldSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaViewer litigationHoldSpace;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secCalendarSettings control.
|
/// secCalendarSettings control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -218,14 +299,5 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,11 +112,17 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="chkEnableHardQuota.Text" xml:space="preserve">
|
||||||
|
<value>Enable Hard Quota:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblLocationDrive.Text" xml:space="preserve">
|
||||||
|
<value>Location Drive:</value>
|
||||||
|
</data>
|
||||||
<data name="lblSpacesFolder.Text" xml:space="preserve">
|
<data name="lblSpacesFolder.Text" xml:space="preserve">
|
||||||
<value>Hosting Spaces Folder:</value>
|
<value>Hosting Spaces Folder:</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -43,6 +43,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
|
|
||||||
public const int EXCHANGE2010_PROVIDER_ID = 32;
|
public const int EXCHANGE2010_PROVIDER_ID = 32;
|
||||||
public const int EXCHANGE2010SP2_PROVIDER_ID = 90;
|
public const int EXCHANGE2010SP2_PROVIDER_ID = 90;
|
||||||
|
public const int EXCHANGE2013_PROVIDER_ID = 91;
|
||||||
|
|
||||||
|
|
||||||
public string HubTransports
|
public string HubTransports
|
||||||
|
@ -102,6 +103,16 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
locMailboxDatabase.Visible = false;
|
locMailboxDatabase.Visible = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EXCHANGE2013_PROVIDER_ID:
|
||||||
|
clusteredMailboxServer.Visible = false;
|
||||||
|
txtMailboxClusterName.Text = "";
|
||||||
|
|
||||||
|
storageGroup.Visible = false;
|
||||||
|
txtStorageGroup.Text = "";
|
||||||
|
|
||||||
|
locMailboxDatabase.Visible = false;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
storageGroup.Visible = true;
|
storageGroup.Visible = true;
|
||||||
txtStorageGroup.Text = settings["StorageGroup"];
|
txtStorageGroup.Text = settings["StorageGroup"];
|
||||||
|
|
|
@ -1,9 +1,36 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Windows2008_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.Windows2008_Settings" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Windows2008_Settings.ascx.cs" Inherits="WebsitePanel.Portal.ProviderControls.Windows2008_Settings" %>
|
||||||
<table cellpadding="1" cellspacing="0" width="100%">
|
<table cellpadding="1" cellspacing="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead" width="200" nowrap>
|
<td class="SubHead" width="200" nowrap>
|
||||||
<asp:Label ID="lblSpacesFolder" runat="server" meta:resourcekey="lblSpacesFolder" Text="User Packages Folder:"></asp:Label>
|
<asp:Label ID="lblSpacesFolder" runat="server" meta:resourcekey="lblSpacesFolder" Text="User Packages Folder:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td width="100%"><asp:TextBox Runat="server" ID="txtFolder" Width="300px" CssClass="NormalTextBox"></asp:TextBox></td>
|
<td width="100%">
|
||||||
</tr>
|
<asp:TextBox runat="server" ID="txtFolder" Width="300px" CssClass="NormalTextBox"></asp:TextBox></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblLocationDrive" runat="server" meta:resourcekey="lblLocationDrive" Text="Location Drive:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%">
|
||||||
|
<asp:TextBox runat="server" ID="txtLocationDrive" Width="50px" MaxLength="1" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="valLocationDrive" runat="server" ControlToValidate="txtLocationDrive"
|
||||||
|
ErrorMessage="*"></asp:RequiredFieldValidator>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" width="200" nowrap></td>
|
||||||
|
<td width="100%">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox runat="server" AutoPostBack="false" ID="chkEnableHardQuota" meta:resourcekey="chkEnableHardQuota" Text="Enable Hard Quota:" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:Label runat="server" ID="lblFileServiceInfo" Text="Install File Services role on the file server to enable the check box" Font-Italic="true" Visible="false"></asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -44,16 +44,40 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
{
|
{
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
//CO Changes
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
chkEnableHardQuota.Enabled = ES.Services.OperatingSystems.CheckFileServicesInstallation(PanelRequest.ServiceId);
|
||||||
|
txtLocationDrive.Enabled = chkEnableHardQuota.Enabled;
|
||||||
|
valLocationDrive.Enabled = chkEnableHardQuota.Enabled;
|
||||||
|
if (!chkEnableHardQuota.Enabled)
|
||||||
|
lblFileServiceInfo.Visible = true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//END
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BindSettings(StringDictionary settings)
|
public void BindSettings(StringDictionary settings)
|
||||||
{
|
{
|
||||||
txtFolder.Text = settings["UsersHome"];
|
txtFolder.Text = settings["UsersHome"];
|
||||||
|
//CO Changes
|
||||||
|
txtLocationDrive.Text = settings["LocationDrive"];
|
||||||
|
chkEnableHardQuota.Checked = settings["EnableHardQuota"] == "true" ? true : false;
|
||||||
|
//END
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveSettings(StringDictionary settings)
|
public void SaveSettings(StringDictionary settings)
|
||||||
{
|
{
|
||||||
settings["UsersHome"] = txtFolder.Text;
|
settings["UsersHome"] = txtFolder.Text;
|
||||||
|
//CO Changes
|
||||||
|
settings["LocationDrive"] = txtLocationDrive.Text;
|
||||||
|
settings["EnableHardQuota"] = chkEnableHardQuota.Checked.ToString().ToLower();
|
||||||
|
//END
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,22 +1,43 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.312
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ProviderControls {
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Windows2008_Settings class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated class.
|
|
||||||
/// </remarks>
|
|
||||||
public partial class Windows2008_Settings {
|
public partial class Windows2008_Settings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -36,5 +57,50 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtFolder;
|
protected global::System.Web.UI.WebControls.TextBox txtFolder;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblLocationDrive control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblLocationDrive;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtLocationDrive control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox txtLocationDrive;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valLocationDrive control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator valLocationDrive;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkEnableHardQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkEnableHardQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblFileServiceInfo control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblFileServiceInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,129 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="chkEnableHardQuota.Text" xml:space="preserve">
|
||||||
|
<value>Enable Hard Quota:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblLocationDrive.Text" xml:space="preserve">
|
||||||
|
<value>Location Drive:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSpacesFolder.Text" xml:space="preserve">
|
||||||
|
<value>Hosting Spaces Folder:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -215,6 +215,37 @@
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secLitigationHold" runat="server"
|
||||||
|
TargetControlID="LitigationHold" meta:resourcekey="secLitigationHold" Text="LitigationHold">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="LitigationHold" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkEnableLitigationHold" runat="server" meta:resourcekey="chkEnableLitigationHold" Text="Enabled Litigation Hold"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locRecoverableItemsSpace" runat="server" meta:resourcekey="locRecoverableItemsSpace" Text="Recoverable Items Space (MB):"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<uc1:QuotaEditor id="recoverableItemsSpace" runat="server"
|
||||||
|
QuotaTypeID="2"
|
||||||
|
QuotaValue="0"
|
||||||
|
ParentQuotaValue="-1">
|
||||||
|
</uc1:QuotaEditor>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locRecoverableItemsWarning" runat="server" meta:resourcekey="locRecoverableItemsWarning" Text="Issue warning at:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SizeBox id="recoverableItemsWarning" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="true" RequireValidatorEnabled="true"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -120,6 +120,10 @@ namespace WebsitePanel.Portal
|
||||||
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
||||||
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
||||||
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
||||||
|
plan.AllowLitigationHold = chkEnableLitigationHold.Checked;
|
||||||
|
plan.RecoverableItemsSpace = recoverableItemsSpace.QuotaValue;
|
||||||
|
plan.RecoverableItemsWarningPct = recoverableItemsWarning.ValueKB;
|
||||||
|
if ((plan.RecoverableItemsWarningPct == 0)) plan.RecoverableItemsWarningPct = 100;
|
||||||
|
|
||||||
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
||||||
plan.MailboxPlanType = (int)ExchangeMailboxPlanType.Administrator;
|
plan.MailboxPlanType = (int)ExchangeMailboxPlanType.Administrator;
|
||||||
|
@ -218,6 +222,10 @@ namespace WebsitePanel.Portal
|
||||||
sizeProhibitSendReceive.ValueKB = -1;
|
sizeProhibitSendReceive.ValueKB = -1;
|
||||||
daysKeepDeletedItems.ValueDays = -1;
|
daysKeepDeletedItems.ValueDays = -1;
|
||||||
chkHideFromAddressBook.Checked = false;
|
chkHideFromAddressBook.Checked = false;
|
||||||
|
chkEnableLitigationHold.Checked = false;
|
||||||
|
recoverableItemsSpace.QuotaValue = 0;
|
||||||
|
recoverableItemsWarning.ValueKB = -1;
|
||||||
|
|
||||||
|
|
||||||
btnUpdateMailboxPlan.Enabled = (string.IsNullOrEmpty(txtMailboxPlan.Text)) ? false : true;
|
btnUpdateMailboxPlan.Enabled = (string.IsNullOrEmpty(txtMailboxPlan.Text)) ? false : true;
|
||||||
|
|
||||||
|
@ -266,7 +274,9 @@ namespace WebsitePanel.Portal
|
||||||
if (plan.KeepDeletedItemsDays != -1)
|
if (plan.KeepDeletedItemsDays != -1)
|
||||||
daysKeepDeletedItems.ValueDays = plan.KeepDeletedItemsDays;
|
daysKeepDeletedItems.ValueDays = plan.KeepDeletedItemsDays;
|
||||||
chkHideFromAddressBook.Checked = plan.HideFromAddressBook;
|
chkHideFromAddressBook.Checked = plan.HideFromAddressBook;
|
||||||
|
chkEnableLitigationHold.Checked = plan.AllowLitigationHold;
|
||||||
|
recoverableItemsSpace.QuotaValue = plan.RecoverableItemsSpace;
|
||||||
|
recoverableItemsWarning.ValueKB = plan.RecoverableItemsWarningPct;
|
||||||
|
|
||||||
btnUpdateMailboxPlan.Enabled = (string.IsNullOrEmpty(txtMailboxPlan.Text)) ? false : true;
|
btnUpdateMailboxPlan.Enabled = (string.IsNullOrEmpty(txtMailboxPlan.Text)) ? false : true;
|
||||||
|
|
||||||
|
@ -369,6 +379,11 @@ namespace WebsitePanel.Portal
|
||||||
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
||||||
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
||||||
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
||||||
|
plan.AllowLitigationHold = chkEnableLitigationHold.Checked;
|
||||||
|
plan.RecoverableItemsSpace = recoverableItemsSpace.QuotaValue;
|
||||||
|
plan.RecoverableItemsWarningPct = recoverableItemsWarning.ValueKB;
|
||||||
|
if ((plan.RecoverableItemsWarningPct == 0)) plan.RecoverableItemsWarningPct = 100;
|
||||||
|
|
||||||
|
|
||||||
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
||||||
plan.MailboxPlanType = (int)ExchangeMailboxPlanType.Administrator;
|
plan.MailboxPlanType = (int)ExchangeMailboxPlanType.Administrator;
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -382,6 +381,69 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secLitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secLitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel LitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkEnableLitigationHold control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkEnableLitigationHold;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locRecoverableItemsSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locRecoverableItemsSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// recoverableItemsSpace control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor recoverableItemsSpace;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locRecoverableItemsWarning control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locRecoverableItemsWarning;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// recoverableItemsWarning control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox recoverableItemsWarning;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAddMailboxPlan control.
|
/// btnAddMailboxPlan control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,119 +1,119 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebSitesEditSite.ascx.cs"
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebSitesEditSite.ascx.cs"
|
||||||
Inherits="WebsitePanel.Portal.WebSitesEditSite" %>
|
Inherits="WebsitePanel.Portal.WebSitesEditSite" %>
|
||||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||||
<%@ Register Src="WebSitesExtensionsControl.ascx" TagName="WebSitesExtensionsControl" TagPrefix="uc6" %>
|
<%@ Register Src="WebSitesExtensionsControl.ascx" TagName="WebSitesExtensionsControl" TagPrefix="uc6" %>
|
||||||
<%@ Register Src="WebSitesCustomErrorsControl.ascx" TagName="WebSitesCustomErrorsControl" TagPrefix="uc4" %>
|
<%@ Register Src="WebSitesCustomErrorsControl.ascx" TagName="WebSitesCustomErrorsControl" TagPrefix="uc4" %>
|
||||||
<%@ Register Src="WebSitesMimeTypesControl.ascx" TagName="WebSitesMimeTypesControl" TagPrefix="uc5" %>
|
<%@ Register Src="WebSitesMimeTypesControl.ascx" TagName="WebSitesMimeTypesControl" TagPrefix="uc5" %>
|
||||||
<%@ Register Src="WebSitesHomeFolderControl.ascx" TagName="WebSitesHomeFolderControl" TagPrefix="uc1" %>
|
<%@ Register Src="WebSitesHomeFolderControl.ascx" TagName="WebSitesHomeFolderControl" TagPrefix="uc1" %>
|
||||||
<%@ Register Src="WebSitesCustomHeadersControl.ascx" TagName="WebSitesCustomHeadersControl" TagPrefix="uc6" %>
|
<%@ Register Src="WebSitesCustomHeadersControl.ascx" TagName="WebSitesCustomHeadersControl" TagPrefix="uc6" %>
|
||||||
<%@ Register Src="WebSitesSecuredFoldersControl.ascx" TagName="WebSitesSecuredFoldersControl" TagPrefix="wsp" %>
|
<%@ Register Src="WebSitesSecuredFoldersControl.ascx" TagName="WebSitesSecuredFoldersControl" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="WebSitesHeliconApeControl.ascx" TagName="WebSitesHeliconApeControl" TagPrefix="wsp" %>
|
<%@ Register Src="WebSitesHeliconApeControl.ascx" TagName="WebSitesHeliconApeControl" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/PasswordControl.ascx" TagName="PasswordControl" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/PasswordControl.ascx" TagName="PasswordControl" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/UsernameControl.ascx" TagName="UsernameControl" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/UsernameControl.ascx" TagName="UsernameControl" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
|
||||||
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.Portal" %>
|
<%@ Register TagPrefix="wsp" Namespace="WebsitePanel.Portal" %>
|
||||||
<%@ Register Src="WebsitesSSL.ascx" TagName="WebsitesSSL" TagPrefix="uc2" %>
|
<%@ Register Src="WebsitesSSL.ascx" TagName="WebsitesSSL" TagPrefix="uc2" %>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.style1
|
.style1
|
||||||
{
|
{
|
||||||
width: 51px;
|
width: 51px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
function confirmationSITE() {
|
function confirmationSITE() {
|
||||||
if (!confirm("Are you sure you want to delete Web site?")) return false; else ShowProgressDialog('Deleting Web site...');
|
if (!confirm("Are you sure you want to delete Web site?")) return false; else ShowProgressDialog('Deleting Web site...');
|
||||||
}
|
}
|
||||||
|
|
||||||
function confirmationFPSE() {
|
function confirmationFPSE() {
|
||||||
if (!confirm("Are you sure you want to delete Frontpage account?")) return false; else ShowProgressDialog('Uninstalling Frontpage...');
|
if (!confirm("Are you sure you want to delete Frontpage account?")) return false; else ShowProgressDialog('Uninstalling Frontpage...');
|
||||||
}
|
}
|
||||||
|
|
||||||
function confirmationWMSVC() {
|
function confirmationWMSVC() {
|
||||||
if (!confirm("Are you sure you want to disable Remote Management?")) return false; else ShowProgressDialog('Disabling Remote Management...');
|
if (!confirm("Are you sure you want to disable Remote Management?")) return false; else ShowProgressDialog('Disabling Remote Management...');
|
||||||
}
|
}
|
||||||
|
|
||||||
function confirmationWebDeployPublishing() {
|
function confirmationWebDeployPublishing() {
|
||||||
if (!confirm("Are you sure you want to disable Web Publishing?")) return false; else ShowProgressDialog('Disabling Web Publishing...');
|
if (!confirm("Are you sure you want to disable Web Publishing?")) return false; else ShowProgressDialog('Disabling Web Publishing...');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<asp:Panel ID="WDeployBuildPublishingProfileWizardPanel" runat="server" CssClass="PopupContainer"
|
<asp:Panel ID="WDeployBuildPublishingProfileWizardPanel" runat="server" CssClass="PopupContainer"
|
||||||
DefaultButton="PubProfileWizardOkButton" Style="display: none;">
|
DefaultButton="PubProfileWizardOkButton" Style="display: none;">
|
||||||
<wsp:PopupHeader runat="server" meta:resourcekey="WDeployBuildPublishingProfileWizard" />
|
<wsp:PopupHeader runat="server" meta:resourcekey="WDeployBuildPublishingProfileWizard" />
|
||||||
<div class="Content">
|
<div class="Content">
|
||||||
<asp:UpdatePanel runat="server" ID="WDeployPubProfilePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
<asp:UpdatePanel runat="server" ID="WDeployPubProfilePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
<Triggers>
|
<Triggers>
|
||||||
<asp:AsyncPostBackTrigger ControlID="MyDatabaseList" EventName="SelectedIndexChanged" />
|
<asp:AsyncPostBackTrigger ControlID="MyDatabaseList" EventName="SelectedIndexChanged" />
|
||||||
</Triggers>
|
</Triggers>
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<div class="FormBody">
|
<div class="FormBody">
|
||||||
<asp:PlaceHolder runat="server" ID="ChooseDatabasePanel">
|
<asp:PlaceHolder runat="server" ID="ChooseDatabasePanel">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>
|
<legend>
|
||||||
<asp:Localize ID="Localize1" runat="server" Text="Database Name" /></legend>
|
<asp:Localize ID="Localize1" runat="server" Text="Database Name" /></legend>
|
||||||
<div class="FormFieldDescription">
|
<div class="FormFieldDescription">
|
||||||
<asp:Localize ID="Localize2" runat="server">Please choose database name...</asp:Localize>
|
<asp:Localize ID="Localize2" runat="server">Please choose database name...</asp:Localize>
|
||||||
</div>
|
</div>
|
||||||
<div class="FormField">
|
<div class="FormField">
|
||||||
<asp:DropDownList ID="MyDatabaseList" runat="server" DataTextField="Name" DataValueField="Id"
|
<asp:DropDownList ID="MyDatabaseList" runat="server" DataTextField="Name" DataValueField="Id"
|
||||||
AutoPostBack="true" Width="100%" OnSelectedIndexChanged="MyDatabaseList_SelectedIndexChanged">
|
AutoPostBack="true" Width="100%" OnSelectedIndexChanged="MyDatabaseList_SelectedIndexChanged">
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</asp:PlaceHolder>
|
</asp:PlaceHolder>
|
||||||
<asp:PlaceHolder runat="server" ID="ChooseDatabaseUserPanel">
|
<asp:PlaceHolder runat="server" ID="ChooseDatabaseUserPanel">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>
|
<legend>
|
||||||
<asp:Localize ID="Localize3" runat="server" Text="Database User" /></legend>
|
<asp:Localize ID="Localize3" runat="server" Text="Database User" /></legend>
|
||||||
<div class="FormFieldDescription">
|
<div class="FormFieldDescription">
|
||||||
<asp:Localize ID="Localize4" runat="server">Please choose database user name...</asp:Localize>
|
<asp:Localize ID="Localize4" runat="server">Please choose database user name...</asp:Localize>
|
||||||
</div>
|
</div>
|
||||||
<div class="FormField">
|
<div class="FormField">
|
||||||
<asp:DropDownList ID="MyDatabaseUserList" runat="server" DataTextField="Name" DataValueField="Id" Width="100%">
|
<asp:DropDownList ID="MyDatabaseUserList" runat="server" DataTextField="Name" DataValueField="Id" Width="100%">
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</asp:PlaceHolder>
|
</asp:PlaceHolder>
|
||||||
<asp:PlaceHolder runat="server" ID="ChooseFtpAccountPanel">
|
<asp:PlaceHolder runat="server" ID="ChooseFtpAccountPanel">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>
|
<legend>
|
||||||
<asp:Localize ID="Localize5" runat="server" Text="FTP Account" /></legend>
|
<asp:Localize ID="Localize5" runat="server" Text="FTP Account" /></legend>
|
||||||
<div class="FormFieldDescription">
|
<div class="FormFieldDescription">
|
||||||
<asp:Localize ID="Localize6" runat="server">Please choose FTP account...</asp:Localize>
|
<asp:Localize ID="Localize6" runat="server">Please choose FTP account...</asp:Localize>
|
||||||
</div>
|
</div>
|
||||||
<div class="FormField">
|
<div class="FormField">
|
||||||
<asp:DropDownList ID="MyFtpAccountList" runat="server" DataTextField="Name" DataValueField="Id" Width="100%">
|
<asp:DropDownList ID="MyFtpAccountList" runat="server" DataTextField="Name" DataValueField="Id" Width="100%">
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</asp:PlaceHolder>
|
</asp:PlaceHolder>
|
||||||
</div>
|
</div>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
<div class="FormFooter">
|
<div class="FormFooter">
|
||||||
<asp:Button ID="PubProfileWizardOkButton" runat="server" CssClass="Button1" meta:resourcekey="PubProfileWizardOkButton"
|
<asp:Button ID="PubProfileWizardOkButton" runat="server" CssClass="Button1" meta:resourcekey="PubProfileWizardOkButton"
|
||||||
Text="OK" ValidationGroup="WDeployBuildPublishingProfileWizard" OnClick="PubProfileWizardOkButton_Click" />
|
Text="OK" ValidationGroup="WDeployBuildPublishingProfileWizard" OnClick="PubProfileWizardOkButton_Click" />
|
||||||
<asp:Button ID="PubProfileWizardCancelButton" runat="server" CssClass="Button1" meta:resourcekey="PubProfileWizardCancelButton"
|
<asp:Button ID="PubProfileWizardCancelButton" runat="server" CssClass="Button1" meta:resourcekey="PubProfileWizardCancelButton"
|
||||||
ValidationGroup="WDeployBuildPublishingProfileWizard" Text="Cancel" CausesValidation="false" />
|
ValidationGroup="WDeployBuildPublishingProfileWizard" Text="Cancel" CausesValidation="false" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
<ajaxToolkit:ModalPopupExtender ID="WDeployRebuildPublishingProfileWizardModal" runat="server"
|
<ajaxToolkit:ModalPopupExtender ID="WDeployRebuildPublishingProfileWizardModal" runat="server"
|
||||||
TargetControlID="WDeployRebuildPubProfileLinkButton" PopupControlID="WDeployBuildPublishingProfileWizardPanel"
|
TargetControlID="WDeployRebuildPubProfileLinkButton" PopupControlID="WDeployBuildPublishingProfileWizardPanel"
|
||||||
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="PubProfileWizardCancelButton" />
|
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="PubProfileWizardCancelButton" />
|
||||||
<div class="FormBody">
|
<div class="FormBody">
|
||||||
<wsp:SimpleMessageBox id="messageBox" runat="server" EnableViewState="false" />
|
<wsp:SimpleMessageBox id="messageBox" runat="server" EnableViewState="false" />
|
||||||
<table style="width:100%" cellpadding="0" cellspacing="0" border="0">
|
<table style="width: 100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">
|
<td valign="top">
|
||||||
<table cellpadding="7" border="0">
|
<table cellpadding="7" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="Big">
|
<td class="Big">
|
||||||
<asp:HyperLink ID="lnkSiteName" runat="server" NavigateUrl="#" Target="_blank">domain.com</asp:HyperLink>
|
<asp:HyperLink ID="lnkSiteName" runat="server" NavigateUrl="#" Target="_blank">domain.com</asp:HyperLink>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<asp:Panel ID="sharedIP" runat="server">
|
<asp:Panel ID="sharedIP" runat="server">
|
||||||
<asp:Localize ID="locSharedIPAddress" runat="server" meta:resourcekey="locSharedIPAddress" Text="IP address: Shared" />
|
<asp:Localize ID="locSharedIPAddress" runat="server" meta:resourcekey="locSharedIPAddress" Text="IP address: Shared" />
|
||||||
|
@ -128,376 +128,386 @@
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
<asp:Panel ID="switchToDedicatedIP" runat="server" Visible="false">
|
<asp:Panel ID="switchToDedicatedIP" runat="server" Visible="false">
|
||||||
<asp:Localize ID="locSelectIPAddress" runat="server" meta:resourcekey="locSelectIPAddress" Text="Select IP address:" />
|
<asp:Localize ID="locSelectIPAddress" runat="server" meta:resourcekey="locSelectIPAddress" Text="Select IP address:" />
|
||||||
<asp:dropdownlist id="ddlIpAddresses" Runat="server" CssClass="NormalTextBox"></asp:dropdownlist>
|
<asp:DropDownList ID="ddlIpAddresses" runat="server" CssClass="NormalTextBox"></asp:DropDownList>
|
||||||
|
|
||||||
<asp:LinkButton ID="cmdApplyDedicatedIP" meta:resourcekey="cmdApplyDedicatedIP" runat="server" Text="Apply" OnClick="cmdApplyDedicatedIP_Click"></asp:LinkButton>
|
<asp:LinkButton ID="cmdApplyDedicatedIP" meta:resourcekey="cmdApplyDedicatedIP" runat="server" Text="Apply" OnClick="cmdApplyDedicatedIP_Click"></asp:LinkButton>
|
||||||
|
|
||||||
<asp:LinkButton ID="cmdCancelDedicatedIP" meta:resourcekey="cmdCancelDedicatedIP" runat="server" Text="Cancel" OnClick="cmdCancelDedicatedIP_Click"></asp:LinkButton>
|
<asp:LinkButton ID="cmdCancelDedicatedIP" meta:resourcekey="cmdCancelDedicatedIP" runat="server" Text="Cancel" OnClick="cmdCancelDedicatedIP_Click"></asp:LinkButton>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<div class="FormButtonsBar">
|
<div class="FormButtonsBar">
|
||||||
<asp:Button ID="btnAddPointer" runat="server" Text="Add Pointer" CssClass="Button2"
|
<asp:Button ID="btnAddPointer" runat="server" Text="Add Pointer" CssClass="Button2"
|
||||||
meta:resourcekey="btnAddPointer" OnClick="btnAddPointer_Click" />
|
meta:resourcekey="btnAddPointer" OnClick="btnAddPointer_Click" />
|
||||||
</div>
|
</div>
|
||||||
<asp:GridView ID="gvPointers" runat="server" EnableViewState="True" AutoGenerateColumns="false"
|
<asp:GridView ID="gvPointers" runat="server" EnableViewState="True" AutoGenerateColumns="false"
|
||||||
ShowHeader="false" CssSelectorClass="NormalGridView" EmptyDataText="gvPointers"
|
ShowHeader="false" CssSelectorClass="NormalGridView" EmptyDataText="gvPointers"
|
||||||
DataKeyNames="DomainID" OnRowDeleting="gvPointers_RowDeleting">
|
DataKeyNames="DomainID" OnRowDeleting="gvPointers_RowDeleting">
|
||||||
<Columns>
|
<Columns>
|
||||||
<asp:TemplateField HeaderText="gvPointersName">
|
<asp:TemplateField HeaderText="gvPointersName">
|
||||||
<ItemStyle Wrap="false" Width="100%"></ItemStyle>
|
<ItemStyle Wrap="false" Width="100%"></ItemStyle>
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:HyperLink ID="lnkPointer" runat="server" NavigateUrl='<%# "http://" + (string)Eval("DomainName") %>'
|
<asp:HyperLink ID="lnkPointer" runat="server" NavigateUrl='<%# "http://" + (string)Eval("DomainName") %>'
|
||||||
Target="_blank"><%# Eval("DomainName") %></asp:HyperLink>
|
Target="_blank"><%# Eval("DomainName") %></asp:HyperLink>
|
||||||
<asp:ImageButton runat="server" SkinID="DeleteSmall" ID="cmdDeletePointer" CommandName='delete'
|
<asp:ImageButton runat="server" SkinID="DeleteSmall" ID="cmdDeletePointer" CommandName='delete'
|
||||||
CommandArgument='<%# Eval("DomainId") %>' meta:resourcekey="cmdDeletePointer"
|
CommandArgument='<%# Eval("DomainId") %>' meta:resourcekey="cmdDeletePointer"
|
||||||
Visible='<%# !(bool)Eval("IsInstantAlias") %>' OnClientClick="return confirm('Remove pointer?');">
|
Visible='<%# !(bool)Eval("IsInstantAlias") %>' OnClientClick="return confirm('Remove pointer?');"></asp:ImageButton>
|
||||||
</asp:ImageButton>
|
</ItemTemplate>
|
||||||
</ItemTemplate>
|
</asp:TemplateField>
|
||||||
</asp:TemplateField>
|
</Columns>
|
||||||
</Columns>
|
</asp:GridView>
|
||||||
</asp:GridView>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
</table>
|
||||||
</table>
|
</td>
|
||||||
</td>
|
<td nowrap valign="top" align="right">
|
||||||
<td nowrap valign="top" align="right">
|
<table cellpadding="7" width="150px">
|
||||||
<table cellpadding="7" width="150px">
|
<tr>
|
||||||
<tr>
|
<td class="MediumBold" align="center">
|
||||||
<td class="MediumBold" align="center">
|
<asp:Literal ID="litStatus" runat="server"></asp:Literal>
|
||||||
<asp:Literal ID="litStatus" runat="server"></asp:Literal>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
<tr>
|
||||||
<tr>
|
<td align="center">
|
||||||
<td align="center">
|
<asp:ImageButton ID="cmdStart" runat="server" SkinID="StartMedium" meta:resourcekey="cmdStart"
|
||||||
<asp:ImageButton ID="cmdStart" runat="server" SkinID="StartMedium" meta:resourcekey="cmdStart"
|
CommandName="Started" OnClick="cmdChangeState_Click" />
|
||||||
CommandName="Started" OnClick="cmdChangeState_Click" />
|
<asp:ImageButton ID="cmdPause" runat="server" SkinID="PauseMedium" meta:resourcekey="cmdPause"
|
||||||
<asp:ImageButton ID="cmdPause" runat="server" SkinID="PauseMedium" meta:resourcekey="cmdPause"
|
CommandName="Paused" OnClick="cmdChangeState_Click" />
|
||||||
CommandName="Paused" OnClick="cmdChangeState_Click" />
|
<asp:ImageButton ID="cmdContinue" runat="server" SkinID="ContinueMedium" meta:resourcekey="cmdContinue"
|
||||||
<asp:ImageButton ID="cmdContinue" runat="server" SkinID="ContinueMedium" meta:resourcekey="cmdContinue"
|
CommandName="Continuing" OnClick="cmdChangeState_Click" />
|
||||||
CommandName="Continuing" OnClick="cmdChangeState_Click" />
|
<asp:ImageButton ID="cmdStop" runat="server" SkinID="StopMedium" meta:resourcekey="cmdStop"
|
||||||
<asp:ImageButton ID="cmdStop" runat="server" SkinID="StopMedium" meta:resourcekey="cmdStop"
|
CommandName="Stopped" OnClick="cmdChangeState_Click" />
|
||||||
CommandName="Stopped" OnClick="cmdChangeState_Click" />
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
</table>
|
||||||
</table>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
<tr>
|
||||||
<tr>
|
<td colspan="2">
|
||||||
<td colspan="2">
|
<table width="100%" cellpadding="0" cellspacing="1">
|
||||||
<table width="100%" cellpadding="0" cellspacing="1">
|
<tr>
|
||||||
<tr>
|
<td class="Tabs">
|
||||||
<td class="Tabs">
|
|
||||||
|
|
||||||
<asp:DataList ID="dlTabs" runat="server" RepeatDirection="Horizontal" OnSelectedIndexChanged="dlTabs_SelectedIndexChanged"
|
<asp:DataList ID="dlTabs" runat="server" RepeatDirection="Horizontal" OnSelectedIndexChanged="dlTabs_SelectedIndexChanged"
|
||||||
RepeatLayout="Flow" DataKeyField="ViewId">
|
RepeatLayout="Flow" DataKeyField="ViewId">
|
||||||
<ItemStyle Wrap="False" />
|
<ItemStyle Wrap="False" />
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:LinkButton ID="cmdSelectTab" runat="server" CommandName="select" CssClass="Tab">
|
<asp:LinkButton ID="cmdSelectTab" runat="server" CommandName="select" CssClass="Tab">
|
||||||
<%# Eval("Name") %>
|
<%# Eval("Name") %>
|
||||||
</asp:LinkButton>
|
</asp:LinkButton>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<SelectedItemStyle Wrap="False" />
|
<SelectedItemStyle Wrap="False" />
|
||||||
<SelectedItemTemplate>
|
<SelectedItemTemplate>
|
||||||
<asp:LinkButton ID="cmdSelectTab" runat="server" CommandName="select" CssClass="ActiveTab">
|
<asp:LinkButton ID="cmdSelectTab" runat="server" CommandName="select" CssClass="ActiveTab">
|
||||||
<%# Eval("Name") %>
|
<%# Eval("Name") %>
|
||||||
</asp:LinkButton>
|
</asp:LinkButton>
|
||||||
</SelectedItemTemplate>
|
</SelectedItemTemplate>
|
||||||
</asp:DataList>
|
</asp:DataList>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div class="FormBody">
|
<div class="FormBody">
|
||||||
<asp:MultiView ID="tabs" runat="server" ActiveViewIndex="0">
|
<asp:MultiView ID="tabs" runat="server" ActiveViewIndex="0">
|
||||||
<asp:View ID="tabHomeFolder" runat="server">
|
<asp:View ID="tabHomeFolder" runat="server">
|
||||||
<uc1:WebSitesHomeFolderControl ID="webSitesHomeFolderControl" runat="server" />
|
<uc1:WebSitesHomeFolderControl ID="webSitesHomeFolderControl" runat="server" />
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabVirtualDirs" runat="server">
|
<asp:View ID="tabVirtualDirs" runat="server">
|
||||||
<div style="width: 500px;">
|
<div style="width: 500px;">
|
||||||
<div class="FormButtonsBar">
|
<div class="FormButtonsBar">
|
||||||
<asp:Button ID="btnAddVirtualDirectory" runat="server" meta:resourcekey="btnAddVirtualDirectory"
|
<asp:Button ID="btnAddVirtualDirectory" runat="server" meta:resourcekey="btnAddVirtualDirectory"
|
||||||
Text="Create Directory" CssClass="Button3" CausesValidation="false" OnClick="btnAddVirtualDirectory_Click" />
|
Text="Create Directory" CssClass="Button3" CausesValidation="false" OnClick="btnAddVirtualDirectory_Click" />
|
||||||
</div>
|
</div>
|
||||||
<asp:GridView ID="gvVirtualDirectories" runat="server" EnableViewState="True" AutoGenerateColumns="false"
|
<asp:GridView ID="gvVirtualDirectories" runat="server" EnableViewState="True" AutoGenerateColumns="false"
|
||||||
ShowHeader="true" CssSelectorClass="NormalGridView" EmptyDataText="gvVirtualDirectories">
|
ShowHeader="true" CssSelectorClass="NormalGridView" EmptyDataText="gvVirtualDirectories">
|
||||||
<Columns>
|
<Columns>
|
||||||
<asp:TemplateField HeaderText="gvVirtualDirectoriesName">
|
<asp:TemplateField HeaderText="gvVirtualDirectoriesName">
|
||||||
<ItemStyle Width="50%" CssClass="NormalBold"></ItemStyle>
|
<ItemStyle Width="50%" CssClass="NormalBold"></ItemStyle>
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:HyperLink ID="lnkEditVDir" runat="server" NavigateUrl='<%# EditUrl("ItemID", PanelRequest.ItemID.ToString(), "edit_vdir", "VirtDir=" + Eval("Name"), "SpaceID=" + PanelSecurity.PackageId) %>'>
|
<asp:HyperLink ID="lnkEditVDir" runat="server" NavigateUrl='<%# EditUrl("ItemID", PanelRequest.ItemID.ToString(), "edit_vdir", "VirtDir=" + Eval("Name"), "SpaceID=" + PanelSecurity.PackageId) %>'>
|
||||||
<%# Eval("Name") %>
|
<%# Eval("Name") %>
|
||||||
</asp:HyperLink>
|
</asp:HyperLink>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:BoundField DataField="ContentPath" HeaderText="gvVirtualDirectoriesPath">
|
<asp:BoundField DataField="ContentPath" HeaderText="gvVirtualDirectoriesPath">
|
||||||
<ItemStyle Width="100%" />
|
<ItemStyle Width="100%" />
|
||||||
</asp:BoundField>
|
</asp:BoundField>
|
||||||
</Columns>
|
</Columns>
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
</div>
|
</div>
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabSecuredFolders" runat="server">
|
<asp:View ID="tabSecuredFolders" runat="server">
|
||||||
<wsp:WebSitesSecuredFoldersControl ID="webSitesSecuredFoldersControl" runat="server" />
|
<wsp:WebSitesSecuredFoldersControl ID="webSitesSecuredFoldersControl" runat="server" />
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabHeliconApe" runat="server">
|
<asp:View ID="tabHeliconApe" runat="server">
|
||||||
<wsp:WebSitesHeliconApeControl ID="webSitesHeliconApeControl" runat="server" />
|
<wsp:WebSitesHeliconApeControl ID="webSitesHeliconApeControl" runat="server" />
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabFrontPage" runat="server">
|
<asp:View ID="tabFrontPage" runat="server">
|
||||||
<asp:Panel ID="pnlFrontPage" runat="server" Style="padding: 20;">
|
<asp:Panel ID="pnlFrontPage" runat="server" Style="padding: 20;">
|
||||||
<table id="tblSharePoint" runat="server">
|
<table id="tblSharePoint" runat="server">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="NormalBold">
|
<td class="NormalBold">
|
||||||
<asp:Label ID="lblSharePoint" runat="server" meta:resourcekey="lblSharePoint" Text="This web site has SharePoint Service installed and thus can't"></asp:Label>
|
<asp:Label ID="lblSharePoint" runat="server" meta:resourcekey="lblSharePoint" Text="This web site has SharePoint Service installed and thus can't"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<asp:Literal ID="litFrontPageUnavailable" runat="server"></asp:Literal>
|
<asp:Literal ID="litFrontPageUnavailable" runat="server"></asp:Literal>
|
||||||
<table id="tblFrontPage" cellspacing="0" cellpadding="2" width="100%" runat="server">
|
<table id="tblFrontPage" cellspacing="0" cellpadding="2" width="100%" runat="server">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead" style="width: 150px;" height="30">
|
<td class="SubHead" style="width: 150px;" height="30">
|
||||||
<asp:Label ID="lblFPStatus" runat="server" meta:resourcekey="lblFPStatus" Text="FrontPage status:"></asp:Label>
|
<asp:Label ID="lblFPStatus" runat="server" meta:resourcekey="lblFPStatus" Text="FrontPage status:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="NormalBold">
|
<td class="NormalBold">
|
||||||
<asp:Literal ID="litFrontPageStatus" runat="server"></asp:Literal>
|
<asp:Literal ID="litFrontPageStatus" runat="server"></asp:Literal>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead">
|
<td class="SubHead">
|
||||||
<asp:Label ID="lblFPAccount" runat="server" meta:resourcekey="lblFPAccount" Text="FrontPage User Account:"></asp:Label>
|
<asp:Label ID="lblFPAccount" runat="server" meta:resourcekey="lblFPAccount" Text="FrontPage User Account:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<wsp:UsernameControl ID="frontPageUsername" runat="server" ValidationGroup="FrontPage" />
|
<wsp:UsernameControl ID="frontPageUsername" runat="server" ValidationGroup="FrontPage" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead" valign="top">
|
<td class="SubHead" valign="top">
|
||||||
<asp:Label ID="lblFPPassword" runat="server" meta:resourcekey="lblFPPassword" Text="Password:"></asp:Label>
|
<asp:Label ID="lblFPPassword" runat="server" meta:resourcekey="lblFPPassword" Text="Password:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:PasswordControl ID="frontPagePassword" runat="server" ValidationGroup="FrontPage" />
|
<wsp:PasswordControl ID="frontPagePassword" runat="server" ValidationGroup="FrontPage" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td></td>
|
||||||
</td>
|
<td class="Normal">
|
||||||
<td class="Normal">
|
<asp:Button ID="btnInstallFrontPage" runat="server" meta:resourcekey="btnInstallFrontPage"
|
||||||
<asp:Button ID="btnInstallFrontPage" runat="server" meta:resourcekey="btnInstallFrontPage"
|
Text="Install" CssClass="Button1" ValidationGroup="FrontPage" OnClick="btnInstallFrontPage_Click"
|
||||||
Text="Install" CssClass="Button1" ValidationGroup="FrontPage" OnClick="btnInstallFrontPage_Click"
|
OnClientClick="ShowProgressDialog('Installing Frontpage...');" />
|
||||||
OnClientClick="ShowProgressDialog('Installing Frontpage...');" />
|
<asp:Button ID="btnChangeFrontPagePassword" runat="server" meta:resourcekey="btnChangeFrontPagePassword"
|
||||||
<asp:Button ID="btnChangeFrontPagePassword" runat="server" meta:resourcekey="btnChangeFrontPagePassword"
|
Text="Change Password" CssClass="Button2" ValidationGroup="FrontPage" OnClick="btnChangeFrontPagePassword_Click" />
|
||||||
Text="Change Password" CssClass="Button2" ValidationGroup="FrontPage" OnClick="btnChangeFrontPagePassword_Click" />
|
<asp:Button ID="btnUninstallFrontPage" runat="server" meta:resourcekey="btnUninstallFrontPage"
|
||||||
<asp:Button ID="btnUninstallFrontPage" runat="server" meta:resourcekey="btnUninstallFrontPage"
|
Text="Uninstall" CssClass="Button1" CausesValidation="false" OnClick="btnUninstallFrontPage_Click"
|
||||||
Text="Uninstall" CssClass="Button1" CausesValidation="false" OnClick="btnUninstallFrontPage_Click"
|
OnClientClick="confirmationFPSE()" />
|
||||||
OnClientClick="confirmationFPSE()" />
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
</table>
|
||||||
</table>
|
</asp:Panel>
|
||||||
</asp:Panel>
|
</asp:View>
|
||||||
</asp:View>
|
<asp:View ID="tabExtensions" runat="server">
|
||||||
<asp:View ID="tabExtensions" runat="server">
|
<uc6:WebSitesExtensionsControl ID="webSitesExtensionsControl" runat="server" />
|
||||||
<uc6:WebSitesExtensionsControl ID="webSitesExtensionsControl" runat="server" />
|
</asp:View>
|
||||||
</asp:View>
|
<asp:View ID="tabErrors" runat="server">
|
||||||
<asp:View ID="tabErrors" runat="server">
|
<uc4:WebSitesCustomErrorsControl ID="webSitesCustomErrorsControl" runat="server" />
|
||||||
<uc4:WebSitesCustomErrorsControl ID="webSitesCustomErrorsControl" runat="server" />
|
</asp:View>
|
||||||
</asp:View>
|
<asp:View ID="tabHeaders" runat="server">
|
||||||
<asp:View ID="tabHeaders" runat="server">
|
<uc6:WebSitesCustomHeadersControl ID="webSitesCustomHeadersControl" runat="server" />
|
||||||
<uc6:WebSitesCustomHeadersControl ID="webSitesCustomHeadersControl" runat="server" />
|
</asp:View>
|
||||||
</asp:View>
|
<asp:View ID="tabWebDeployPublishing" runat="server">
|
||||||
<asp:View ID="tabWebDeployPublishing" runat="server">
|
<div style="padding: 20;">
|
||||||
<div style="padding: 20;">
|
<asp:PlaceHolder runat="server" ID="PanelWDeploySitePublishingDisabled" Visible="false">
|
||||||
<asp:PlaceHolder runat="server" ID="PanelWDeploySitePublishingDisabled" Visible="false">
|
<div class="NormalBold">
|
||||||
<div class="NormalBold">
|
<asp:Localize runat="server" meta:resourcekey="WDeploySitePublishingDisabled" />
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeploySitePublishingDisabled" /></div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div class="Normal">
|
<div class="Normal">
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeploySitePublishingEnablementHint" /></div>
|
<asp:Localize runat="server" meta:resourcekey="WDeploySitePublishingEnablementHint" />
|
||||||
<br />
|
</div>
|
||||||
</asp:PlaceHolder>
|
<br />
|
||||||
<asp:PlaceHolder runat="server" ID="PanelWDeployManagePublishingProfile" Visible="false">
|
</asp:PlaceHolder>
|
||||||
<div class="NormalBold">
|
<asp:PlaceHolder runat="server" ID="PanelWDeployManagePublishingProfile" Visible="false">
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeploySitePublishingEnabled" /></div>
|
<div class="NormalBold">
|
||||||
<br />
|
<asp:Localize runat="server" meta:resourcekey="WDeploySitePublishingEnabled" />
|
||||||
<div class="Normal">
|
</div>
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingProfileUsageNotes" /></div>
|
<br />
|
||||||
<br />
|
<div class="Normal">
|
||||||
<p>
|
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingProfileUsageNotes" />
|
||||||
<asp:LinkButton runat="server" ID="WDeployDownloadPubProfileLink" Text="Download Publishing Profile for this web site"
|
</div>
|
||||||
CommandName="DownloadProfile" OnCommand="WDeployDownloadPubProfileLink_Command" /> / <asp:LinkButton
|
<br />
|
||||||
runat="server" ID="WDeployRebuildPubProfileLinkButton" Text="Re-build Publishing Profile for this web site" /></p>
|
<p>
|
||||||
<br />
|
<asp:LinkButton runat="server" ID="WDeployDownloadPubProfileLink" Text="Download Publishing Profile for this web site"
|
||||||
</asp:PlaceHolder>
|
CommandName="DownloadProfile" OnCommand="WDeployDownloadPubProfileLink_Command" /> / <asp:LinkButton
|
||||||
<asp:PlaceHolder runat="server" ID="PanelWDeployPublishingCredentials" Visible="false">
|
runat="server" ID="WDeployRebuildPubProfileLinkButton" Text="Re-build Publishing Profile for this web site" />
|
||||||
<table cellpadding="4" border="0">
|
</p>
|
||||||
<tr>
|
<br />
|
||||||
<td class="Normal">
|
</asp:PlaceHolder>
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingAccountLocalize" />
|
<asp:PlaceHolder runat="server" ID="PanelWDeployPublishingCredentials" Visible="false">
|
||||||
</td>
|
<table cellpadding="4" border="0">
|
||||||
<td class="NormalBold">
|
<tr>
|
||||||
<asp:TextBox runat="server" ID="WDeployPublishingAccountTextBox" CssClass="NormalTextBox"
|
<td class="Normal">
|
||||||
ValidationGroup="WDeployPublishingGroup" MaxLength="20" />
|
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingAccountLocalize" />
|
||||||
<asp:Literal runat="server" ID="WDeployPublishingAccountLiteral" Visible="false" />
|
</td>
|
||||||
<asp:RequiredFieldValidator ID="WDeployPublishingAccountRequiredFieldValidator" runat="server"
|
<td class="NormalBold">
|
||||||
ErrorMessage="*" ValidationGroup="WDeployPublishingGroup" ControlToValidate="WDeployPublishingAccountTextBox" />
|
<asp:TextBox runat="server" ID="WDeployPublishingAccountTextBox" CssClass="NormalTextBox"
|
||||||
</td>
|
ValidationGroup="WDeployPublishingGroup" MaxLength="20" />
|
||||||
</tr>
|
<asp:Literal runat="server" ID="WDeployPublishingAccountLiteral" Visible="false" />
|
||||||
<tr>
|
<asp:RequiredFieldValidator ID="WDeployPublishingAccountRequiredFieldValidator" runat="server"
|
||||||
<td class="Normal">
|
ErrorMessage="*" ValidationGroup="WDeployPublishingGroup" ControlToValidate="WDeployPublishingAccountTextBox" />
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingPasswordLocalize" />
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
<asp:TextBox runat="server" ID="WDeployPublishingPasswordTextBox" TextMode="Password"
|
<td class="Normal">
|
||||||
CssClass="NormalTextBox" ValidationGroup="WDeployPublishingGroup" />
|
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingPasswordLocalize" />
|
||||||
<asp:RequiredFieldValidator ID="WDeployPublishingPasswordRequiredFieldValidator"
|
</td>
|
||||||
runat="server" ErrorMessage="*" ValidationGroup="WDeployPublishingGroup" ControlToValidate="WDeployPublishingPasswordTextBox" />
|
<td>
|
||||||
</td>
|
<asp:TextBox runat="server" ID="WDeployPublishingPasswordTextBox" TextMode="Password"
|
||||||
</tr>
|
CssClass="NormalTextBox" ValidationGroup="WDeployPublishingGroup" />
|
||||||
<tr>
|
<asp:RequiredFieldValidator ID="WDeployPublishingPasswordRequiredFieldValidator"
|
||||||
<td class="Normal">
|
runat="server" ErrorMessage="*" ValidationGroup="WDeployPublishingGroup" ControlToValidate="WDeployPublishingPasswordTextBox" />
|
||||||
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingConfirmPasswordLocalize" />
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
<asp:TextBox runat="server" ID="WDeployPublishingConfirmPasswordTextBox" TextMode="Password"
|
<td class="Normal">
|
||||||
CssClass="NormalTextBox" ValidationGroup="WDeployPublishingGroup" />
|
<asp:Localize runat="server" meta:resourcekey="WDeployPublishingConfirmPasswordLocalize" />
|
||||||
<asp:RequiredFieldValidator ID="WDeployPublishingConfirmPasswordRequiredFieldValidator"
|
</td>
|
||||||
runat="server" ErrorMessage="*" ValidationGroup="WDeployPublishingGroup" ControlToValidate="WDeployPublishingConfirmPasswordTextBox" />
|
<td>
|
||||||
<asp:CompareValidator ID="WDeployPublishingConfirmPasswordTextBoxCompareValidator"
|
<asp:TextBox runat="server" ID="WDeployPublishingConfirmPasswordTextBox" TextMode="Password"
|
||||||
runat="server" meta:resourcekey="cvPasswordComparer" ControlToValidate="WDeployPublishingConfirmPasswordTextBox"
|
CssClass="NormalTextBox" ValidationGroup="WDeployPublishingGroup" />
|
||||||
ControlToCompare="WDeployPublishingPasswordTextBox" Display="Dynamic" />
|
<asp:RequiredFieldValidator ID="WDeployPublishingConfirmPasswordRequiredFieldValidator"
|
||||||
</td>
|
runat="server" ErrorMessage="*" ValidationGroup="WDeployPublishingGroup" ControlToValidate="WDeployPublishingConfirmPasswordTextBox" />
|
||||||
</tr>
|
<asp:CompareValidator ID="WDeployPublishingConfirmPasswordTextBoxCompareValidator"
|
||||||
</table>
|
runat="server" meta:resourcekey="cvPasswordComparer" ControlToValidate="WDeployPublishingConfirmPasswordTextBox"
|
||||||
<br />
|
ControlToCompare="WDeployPublishingPasswordTextBox" Display="Dynamic" />
|
||||||
<div>
|
</td>
|
||||||
<asp:Button runat="server" ID="WDeployEnabePublishingButton" meta:resourcekey="WDeployEnabePublishingButton"
|
</tr>
|
||||||
CssClass="Button1" OnClick="WDeployEnabePublishingButton_Click" ValidationGroup="WDeployPublishingGroup" />
|
</table>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<asp:Button runat="server" ID="WDeployEnabePublishingButton" meta:resourcekey="WDeployEnabePublishingButton"
|
||||||
|
CssClass="Button1" OnClick="WDeployEnabePublishingButton_Click" ValidationGroup="WDeployPublishingGroup" />
|
||||||
<asp:Button runat="server" ID="WDeployChangePublishingPasswButton" meta:resourcekey="WDeployChangePublishingPasswButton"
|
<asp:Button runat="server" ID="WDeployChangePublishingPasswButton" meta:resourcekey="WDeployChangePublishingPasswButton"
|
||||||
CssClass="Button1" OnClick="WDeployChangePublishingPasswButton_Click" ValidationGroup="WDeployPublishingGroup" />
|
CssClass="Button1" OnClick="WDeployChangePublishingPasswButton_Click" ValidationGroup="WDeployPublishingGroup" />
|
||||||
<asp:Button runat="server" ID="WDeployDisablePublishingButton" meta:resourcekey="WDeployDisablePublishingButton"
|
<asp:Button runat="server" ID="WDeployDisablePublishingButton" meta:resourcekey="WDeployDisablePublishingButton"
|
||||||
CssClass="Button1" OnClick="WDeployDisablePublishingButton_Click" OnClientClick="return confirmationWebDeployPublishing();"
|
CssClass="Button1" OnClick="WDeployDisablePublishingButton_Click" OnClientClick="return confirmationWebDeployPublishing();"
|
||||||
ValidationGroup="WDeployPublishingGroup" CausesValidation="false" />
|
ValidationGroup="WDeployPublishingGroup" CausesValidation="false" />
|
||||||
</div>
|
</div>
|
||||||
</asp:PlaceHolder>
|
</asp:PlaceHolder>
|
||||||
<asp:PlaceHolder runat="server" ID="PanelWDeployNotInstalled" Visible="false">Web Deploy
|
<asp:PlaceHolder runat="server" ID="PanelWDeployNotInstalled" Visible="false">Web Deploy
|
||||||
Remote Agent is not installed... </asp:PlaceHolder>
|
Remote Agent is not installed... </asp:PlaceHolder>
|
||||||
</div>
|
</div>
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabMimes" runat="server">
|
<asp:View ID="tabMimes" runat="server">
|
||||||
<uc5:WebSitesMimeTypesControl ID="webSitesMimeTypesControl" runat="server" />
|
<uc5:WebSitesMimeTypesControl ID="webSitesMimeTypesControl" runat="server" />
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabCF" runat="server">
|
<asp:View ID="tabCF" runat="server">
|
||||||
<asp:Literal ID="litCFUnavailable" runat="server"></asp:Literal>
|
<asp:Literal ID="litCFUnavailable" runat="server"></asp:Literal>
|
||||||
<br></br>
|
<br></br>
|
||||||
<br></br>
|
<br></br>
|
||||||
<table id="tableCF" runat="server">
|
<table id="tableCF" runat="server">
|
||||||
<tr id="rowCF" runat="server">
|
<tr id="rowCF" runat="server">
|
||||||
<td class="style1">
|
<td class="style1">
|
||||||
<asp:CheckBox ID="chkCfExt" runat="server" Text="" meta:resourcekey="chkEnabled" />
|
<asp:CheckBox ID="chkCfExt" runat="server" Text="" meta:resourcekey="chkEnabled" />
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<asp:Label ID="lblCF" runat="server" meta:resourcekey="lblCF" Text="Enable ColdFusion Extensions."></asp:Label>
|
<asp:Label ID="lblCF" runat="server" meta:resourcekey="lblCF" Text="Enable ColdFusion Extensions."></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="rowVirtDir" runat="server">
|
<tr id="rowVirtDir" runat="server">
|
||||||
<td class="style1">
|
<td class="style1">
|
||||||
<asp:CheckBox ID="chkVirtDir" runat="server" Text="" meta:resourcekey="chkEnabled" />
|
<asp:CheckBox ID="chkVirtDir" runat="server" Text="" meta:resourcekey="chkEnabled" />
|
||||||
</td>
|
</td>
|
||||||
<td class="Normal">
|
<td class="Normal">
|
||||||
<asp:Label ID="lblVirtDir" runat="server" meta:resourcekey="lblVirtDir" Text="Create Virtual Directories for scripts and Flash remoting."></asp:Label>
|
<asp:Label ID="lblVirtDir" runat="server" meta:resourcekey="lblVirtDir" Text="Create Virtual Directories for scripts and Flash remoting."></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</asp:View>
|
</asp:View>
|
||||||
<asp:View ID="tabWebManagement" runat="server">
|
<asp:View ID="tabWebManagement" runat="server">
|
||||||
<div style="padding: 20;">
|
<div style="padding: 20;">
|
||||||
<asp:PlaceHolder runat="server" ID="pnlWmSvcSiteDisabled" Visible="false">
|
<asp:PlaceHolder runat="server" ID="pnlWmSvcSiteDisabled" Visible="false">
|
||||||
<div class="NormalBold">
|
<div class="NormalBold">
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclWmSvcSiteDisabled" /></div>
|
<asp:Localize runat="server" meta:resourcekey="lclWmSvcSiteDisabled" />
|
||||||
<br />
|
</div>
|
||||||
<div class="Normal">
|
<br />
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclEnablementHint" /></div>
|
<div class="Normal">
|
||||||
<br />
|
<asp:Localize runat="server" meta:resourcekey="lclEnablementHint" />
|
||||||
</asp:PlaceHolder>
|
</div>
|
||||||
<asp:PlaceHolder runat="server" ID="pnlWmSvcSiteEnabled" Visible="false">
|
<br />
|
||||||
<div class="NormalBold">
|
</asp:PlaceHolder>
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclWmSvcSiteEnabled" /></div>
|
<asp:PlaceHolder runat="server" ID="pnlWmSvcSiteEnabled" Visible="false">
|
||||||
<br />
|
<div class="NormalBold">
|
||||||
<div class="Normal">
|
<asp:Localize runat="server" meta:resourcekey="lclWmSvcSiteEnabled" />
|
||||||
<asp:Localize runat="server" ID="lclWmSvcConnectionHint" meta:resourcekey="lclWmSvcConnectionHint" /></div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
</asp:PlaceHolder>
|
<div class="Normal">
|
||||||
<asp:PlaceHolder runat="server" ID="pnlWmcSvcManagement">
|
<asp:Localize runat="server" ID="lclWmSvcConnectionHint" meta:resourcekey="lclWmSvcConnectionHint" />
|
||||||
<table cellpadding="4" border="0">
|
</div>
|
||||||
<tr>
|
<br />
|
||||||
<td class="Normal">
|
</asp:PlaceHolder>
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclWmSvcAccountName" />
|
<asp:PlaceHolder runat="server" ID="pnlWmcSvcManagement">
|
||||||
</td>
|
<table cellpadding="4" border="0">
|
||||||
<td class="NormalBold">
|
<tr>
|
||||||
<asp:TextBox runat="server" ID="txtWmSvcAccountName" CssClass="NormalTextBox" ValidationGroup="WmSvcGroup"
|
<td class="Normal">
|
||||||
MaxLength="20" />
|
<asp:Localize runat="server" meta:resourcekey="lclWmSvcAccountName" />
|
||||||
<asp:Literal runat="server" ID="litWmSvcAccountName" Visible="false" />
|
</td>
|
||||||
<asp:RequiredFieldValidator runat="server" ErrorMessage="*" ValidationGroup="WmSvcGroup"
|
<td class="NormalBold">
|
||||||
ControlToValidate="txtWmSvcAccountName" />
|
<asp:TextBox runat="server" ID="txtWmSvcAccountName" CssClass="NormalTextBox" ValidationGroup="WmSvcGroup"
|
||||||
</td>
|
MaxLength="20" />
|
||||||
</tr>
|
<asp:Literal runat="server" ID="litWmSvcAccountName" Visible="false" />
|
||||||
<tr>
|
<asp:RequiredFieldValidator runat="server" ErrorMessage="*" ValidationGroup="WmSvcGroup"
|
||||||
<td class="Normal">
|
ControlToValidate="txtWmSvcAccountName" />
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclWmSvcAccountPassword" />
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
<asp:TextBox runat="server" ID="txtWmSvcAccountPassword" TextMode="Password" CssClass="NormalTextBox"
|
<td class="Normal">
|
||||||
ValidationGroup="WmSvcGroup" />
|
<asp:Localize runat="server" meta:resourcekey="lclWmSvcAccountPassword" />
|
||||||
<asp:RequiredFieldValidator runat="server" ErrorMessage="*" ValidationGroup="WmSvcGroup"
|
</td>
|
||||||
ControlToValidate="txtWmSvcAccountPassword" />
|
<td>
|
||||||
</td>
|
<asp:TextBox runat="server" ID="txtWmSvcAccountPassword" TextMode="Password" CssClass="NormalTextBox"
|
||||||
</tr>
|
ValidationGroup="WmSvcGroup" />
|
||||||
<tr>
|
<asp:RequiredFieldValidator runat="server" ErrorMessage="*" ValidationGroup="WmSvcGroup"
|
||||||
<td class="Normal">
|
ControlToValidate="txtWmSvcAccountPassword" />
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclWmSvcAccountPasswordC" />
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
<td>
|
<tr>
|
||||||
<asp:TextBox runat="server" ID="txtWmSvcAccountPasswordC" TextMode="Password" CssClass="NormalTextBox"
|
<td class="Normal">
|
||||||
ValidationGroup="WmSvcGroup" />
|
<asp:Localize runat="server" meta:resourcekey="lclWmSvcAccountPasswordC" />
|
||||||
<asp:RequiredFieldValidator runat="server" ErrorMessage="*" ValidationGroup="WmSvcGroup"
|
</td>
|
||||||
ControlToValidate="txtWmSvcAccountPasswordC" />
|
<td>
|
||||||
<asp:CompareValidator runat="server" meta:resourcekey="cvPasswordComparer" ControlToValidate="txtWmSvcAccountPasswordC"
|
<asp:TextBox runat="server" ID="txtWmSvcAccountPasswordC" TextMode="Password" CssClass="NormalTextBox"
|
||||||
ControlToCompare="txtWmSvcAccountPassword" Display="Dynamic" />
|
ValidationGroup="WmSvcGroup" />
|
||||||
</td>
|
<asp:RequiredFieldValidator runat="server" ErrorMessage="*" ValidationGroup="WmSvcGroup"
|
||||||
</tr>
|
ControlToValidate="txtWmSvcAccountPasswordC" />
|
||||||
</table>
|
<asp:CompareValidator runat="server" meta:resourcekey="cvPasswordComparer" ControlToValidate="txtWmSvcAccountPasswordC"
|
||||||
<br />
|
ControlToCompare="txtWmSvcAccountPassword" Display="Dynamic" />
|
||||||
<div>
|
</td>
|
||||||
<asp:Button runat="server" ID="btnWmSvcSiteEnable" meta:resourcekey="btnWmSvcSiteEnable"
|
</tr>
|
||||||
CssClass="Button1" OnClick="btnWmSvcSiteEnable_Click" ValidationGroup="WmSvcGroup" />
|
</table>
|
||||||
<asp:Button runat="server" ID="btnWmSvcChangePassw" meta:resourcekey="btnWmSvcChangePassw"
|
<br />
|
||||||
CssClass="Button1" OnClick="btnWmSvcChangePassw_Click" ValidationGroup="WmSvcGroup" />
|
<div>
|
||||||
|
<asp:Button runat="server" ID="btnWmSvcSiteEnable" meta:resourcekey="btnWmSvcSiteEnable"
|
||||||
|
CssClass="Button1" OnClick="btnWmSvcSiteEnable_Click" ValidationGroup="WmSvcGroup" />
|
||||||
|
<asp:Button runat="server" ID="btnWmSvcChangePassw" meta:resourcekey="btnWmSvcChangePassw"
|
||||||
|
CssClass="Button1" OnClick="btnWmSvcChangePassw_Click" ValidationGroup="WmSvcGroup" />
|
||||||
<asp:Button runat="server" ID="btnWmSvcSiteDisable" meta:resourcekey="btnWmSvcSiteDisable"
|
<asp:Button runat="server" ID="btnWmSvcSiteDisable" meta:resourcekey="btnWmSvcSiteDisable"
|
||||||
CssClass="Button1" OnClick="btnWmSvcSiteDisable_Click" OnClientClick="return confirmationWMSVC();"
|
CssClass="Button1" OnClick="btnWmSvcSiteDisable_Click" OnClientClick="return confirmationWMSVC();"
|
||||||
ValidationGroup="WmSvcGroup" CausesValidation="false" />
|
ValidationGroup="WmSvcGroup" CausesValidation="false" />
|
||||||
</div>
|
</div>
|
||||||
</asp:PlaceHolder>
|
</asp:PlaceHolder>
|
||||||
<asp:PlaceHolder runat="server" ID="pnlNotInstalled" Visible="false">
|
<asp:PlaceHolder runat="server" ID="pnlNotInstalled" Visible="false">
|
||||||
<div class="NormalBold">
|
<div class="NormalBold">
|
||||||
<asp:Localize runat="server" meta:resourcekey="lclWmSvcNotInstalled" /></div>
|
<asp:Localize runat="server" meta:resourcekey="lclWmSvcNotInstalled" />
|
||||||
</asp:PlaceHolder>
|
</div>
|
||||||
</div>
|
</asp:PlaceHolder>
|
||||||
</asp:View>
|
</div>
|
||||||
<asp:View ID="SSL" runat="server">
|
</asp:View>
|
||||||
<uc2:WebsitesSSL ID="WebsitesSSLControl" runat="server" />
|
<asp:View ID="SSL" runat="server">
|
||||||
</asp:View>
|
<uc2:WebsitesSSL ID="WebsitesSSLControl" runat="server" />
|
||||||
</asp:MultiView>
|
</asp:View>
|
||||||
</div>
|
</asp:MultiView>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</td>
|
||||||
</table>
|
</tr>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="FormFooter">
|
<div class="FormFooter">
|
||||||
<asp:Button ID="btnUpdate" runat="server" meta:resourcekey="btnUpdate" Text="Update"
|
<asp:Button ID="btnUpdate" runat="server" meta:resourcekey="btnUpdate" Text="Update"
|
||||||
CssClass="Button1" OnClick="btnUpdate_Click" OnClientClick="ShowProgressDialog('Updating web site...');" />
|
CssClass="Button1" OnClick="btnUpdate_Click" OnClientClick="ShowProgressDialog('Updating web site...');" />
|
||||||
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" Text="Cancel"
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" Text="Cancel"
|
||||||
CssClass="Button1" CausesValidation="false" OnClick="btnCancel_Click" />
|
CssClass="Button1" CausesValidation="false" OnClick="btnCancel_Click" />
|
||||||
<asp:Button ID="btnDelete" runat="server" meta:resourcekey="btnDelete" Text="Delete"
|
</div>
|
||||||
CssClass="Button1" CausesValidation="false" OnClientClick="return confirm('Delete this web site?');"
|
<div class="FormFooter">
|
||||||
OnClick="btnDelete_Click" />
|
<asp:Button ID="btnDelete" runat="server" meta:resourcekey="btnDelete" Text="Delete"
|
||||||
</div>
|
CssClass="Button1" CausesValidation="false" OnClientClick="return confirm('Delete this web site?');"
|
||||||
|
OnClick="btnDelete_Click" />
|
||||||
|
<asp:CheckBox ID="chkDeleteWebsiteDirectory" runat="server" Text="Delete Website Directory?" AutoPostBack="false" meta:resourcekey="chkDeleteWebsiteDirectory" />
|
||||||
|
</div>
|
||||||
|
|
|
@ -913,7 +913,7 @@ namespace WebsitePanel.Portal
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int result = ES.Services.WebServers.DeleteWebSite(PanelRequest.ItemID);
|
int result = ES.Services.WebServers.DeleteWebSite(PanelRequest.ItemID, chkDeleteWebsiteDirectory.Checked);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
ShowResultMessage(result);
|
ShowResultMessage(result);
|
||||||
|
|
|
@ -1,3 +1,31 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -1073,5 +1101,14 @@ namespace WebsitePanel.Portal {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Button btnDelete;
|
protected global::System.Web.UI.WebControls.Button btnDelete;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkDeleteWebsiteDirectory control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkDeleteWebsiteDirectory;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,6 +93,13 @@
|
||||||
<Compile Include="..\..\..\VersionInfo.cs">
|
<Compile Include="..\..\..\VersionInfo.cs">
|
||||||
<Link>Code\VersionInfo.cs</Link>
|
<Link>Code\VersionInfo.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="ApplyEnableHardQuotaFeature.ascx.cs">
|
||||||
|
<DependentUpon>ApplyEnableHardQuotaFeature.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ApplyEnableHardQuotaFeature.ascx.designer.cs">
|
||||||
|
<DependentUpon>ApplyEnableHardQuotaFeature.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="AuditLog.ascx.cs">
|
<Compile Include="AuditLog.ascx.cs">
|
||||||
<DependentUpon>AuditLog.ascx</DependentUpon>
|
<DependentUpon>AuditLog.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -3811,6 +3818,7 @@
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
||||||
<Content Include="ExchangeServer\OrganizationAddDomainName.ascx" />
|
<Content Include="ExchangeServer\OrganizationAddDomainName.ascx" />
|
||||||
<Content Include="ExchangeServer\OrganizationDomainNames.ascx" />
|
<Content Include="ExchangeServer\OrganizationDomainNames.ascx" />
|
||||||
<Content Include="ExchangeServer\ExchangeAddMailboxPlan.ascx" />
|
<Content Include="ExchangeServer\ExchangeAddMailboxPlan.ascx" />
|
||||||
|
@ -4975,6 +4983,7 @@
|
||||||
<Content Include="ExchangeServer\App_LocalResources\OrganizationAddDomainName.ascx.resx">
|
<Content Include="ExchangeServer\App_LocalResources\OrganizationAddDomainName.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
|
<None Include="Resources\Windows2008_Settings.ascx.resx" />
|
||||||
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -17,8 +17,8 @@ REM %WSE_CLEAN% .\WebsitePanel.Server.Client\DatabaseServerProxy.cs
|
||||||
REM %WSDL% %SERVER_URL%/DNSServer.asmx /out:.\WebsitePanel.Server.Client\DnsServerProxy.cs /namespace:WebsitePanel.Providers.DNS /type:webClient /fields
|
REM %WSDL% %SERVER_URL%/DNSServer.asmx /out:.\WebsitePanel.Server.Client\DnsServerProxy.cs /namespace:WebsitePanel.Providers.DNS /type:webClient /fields
|
||||||
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\DnsServerProxy.cs
|
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\DnsServerProxy.cs
|
||||||
|
|
||||||
REM %WSDL% %SERVER_URL%/ExchangeServer.asmx /out:.\WebsitePanel.Server.Client\ExchangeServerProxy.cs /namespace:WebsitePanel.Providers.Exchange /type:webClient /fields
|
%WSDL% %SERVER_URL%/ExchangeServer.asmx /out:.\WebsitePanel.Server.Client\ExchangeServerProxy.cs /namespace:WebsitePanel.Providers.Exchange /type:webClient /fields
|
||||||
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\ExchangeServerProxy.cs
|
%WSE_CLEAN% .\WebsitePanel.Server.Client\ExchangeServerProxy.cs
|
||||||
|
|
||||||
REM %WSDL% %SERVER_URL%/ExchangeServerHostedEdition.asmx /out:.\WebsitePanel.Server.Client\ExchangeServerHostedEditionProxy.cs /namespace:WebsitePanel.Providers.ExchangeHostedEdition /type:webClient /fields
|
REM %WSDL% %SERVER_URL%/ExchangeServerHostedEdition.asmx /out:.\WebsitePanel.Server.Client\ExchangeServerHostedEditionProxy.cs /namespace:WebsitePanel.Providers.ExchangeHostedEdition /type:webClient /fields
|
||||||
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\ExchangeServerHostedEditionProxy.cs
|
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\ExchangeServerHostedEditionProxy.cs
|
||||||
|
@ -35,8 +35,8 @@ REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OCSServerProxy.cs
|
||||||
REM %WSDL% %SERVER_URL%/OperatingSystem.asmx /out:.\WebsitePanel.Server.Client\OperatingSystemProxy.cs /namespace:WebsitePanel.Providers.OS /type:webClient /fields
|
REM %WSDL% %SERVER_URL%/OperatingSystem.asmx /out:.\WebsitePanel.Server.Client\OperatingSystemProxy.cs /namespace:WebsitePanel.Providers.OS /type:webClient /fields
|
||||||
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OperatingSystemProxy.cs
|
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OperatingSystemProxy.cs
|
||||||
|
|
||||||
%WSDL% %SERVER_URL%/Organizations.asmx /out:.\WebsitePanel.Server.Client\OrganizationProxy.cs /namespace:WebsitePanel.Providers.HostedSolution /type:webClient /fields
|
REM %WSDL% %SERVER_URL%/Organizations.asmx /out:.\WebsitePanel.Server.Client\OrganizationProxy.cs /namespace:WebsitePanel.Providers.HostedSolution /type:webClient /fields
|
||||||
%WSE_CLEAN% .\WebsitePanel.Server.Client\OrganizationProxy.cs
|
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\OrganizationProxy.cs
|
||||||
|
|
||||||
REM %WSDL% %SERVER_URL%/ServiceProvider.asmx /out:.\WebsitePanel.Server.Client\ServiceProviderProxy.cs /namespace:WebsitePanel.Providers /type:webClient /fields
|
REM %WSDL% %SERVER_URL%/ServiceProvider.asmx /out:.\WebsitePanel.Server.Client\ServiceProviderProxy.cs /namespace:WebsitePanel.Providers /type:webClient /fields
|
||||||
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\ServiceProviderProxy.cs
|
REM %WSE_CLEAN% .\WebsitePanel.Server.Client\ServiceProviderProxy.cs
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>2.0.0</Version>
|
<Version>2.1.0</Version>
|
||||||
<FileVersion>$(BUILD_NUMBER)</FileVersion>
|
<FileVersion>$(BUILD_NUMBER)</FileVersion>
|
||||||
<VersionLabel>$(BUILD_NUMBER)</VersionLabel>
|
<VersionLabel>$(BUILD_NUMBER)</VersionLabel>
|
||||||
<ReleaseDate>2012-12-07</ReleaseDate>
|
<ReleaseDate>2012-12-07</ReleaseDate>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue