Removed Exchange Hosted Edition

Important!:
Before updating ensure that there are no servers within the
with the WebsitePanel with ExchangeHostedEdition enabled/configured.
This commit is contained in:
robvde 2012-07-08 09:04:14 +04:00
parent 9dd9a4ab13
commit 2f8a580846
78 changed files with 49 additions and 7299 deletions

View file

@ -3708,14 +3708,6 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (332, 2, 21, N'Web.SSL', N'SSL', 1, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (340, 33, 1, N'ExchangeHostedEdition.Domains', N'Domains', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (341, 33, 2, N'ExchangeHostedEdition.Mailboxes', N'Mailboxes', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (342, 33, 3, N'ExchangeHostedEdition.Contacts', N'Contacts', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (343, 33, 4, N'ExchangeHostedEdition.DistributionLists', N'Distribution Lists', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (344, 2, 9, N'Web.Htaccess', N'htaccess', 1, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (345, 40, 1, N'VPSForPC.ServersNumber', N'Number of VPS', 2, 0, 35)
@ -10517,8 +10509,6 @@ INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupContr
GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (32, N'OCS', 22, NULL)
GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (33, N'ExchangeHostedEdition', 7, N'WebsitePanel.EnterpriseServer.ExchangeHostedEditionController')
GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (40, N'VPSForPC', 20, NULL)
GO
SET ANSI_NULLS ON
@ -22300,8 +22290,6 @@ INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeNa
GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (38, 23, N'MsSQL2012User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1)
GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 33, N'ExchangeOrganization', N'WebsitePanel.Providers.ExchangeHostedEdition.ExchangeOrganization, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0)
GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (200, 20, N'SharePointSiteCollection', N'WebsitePanel.Providers.SharePoint.SharePointSiteCollection, WebsitePanel.Providers.Base', 25, 1, 0, 0, 1, 1, 1, 1)
GO
SET ANSI_NULLS ON
@ -23259,8 +23247,6 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (206, 32, N'OCSEdge', N'OCS Edge server', N'WebsitePanel.Providers.HostedSolution.OCSEdge2007R2, WebsitePanel.Providers.HostedSolution', N'OCS_Edge', 1)
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (207, 33, N'Exchange2010SP1', N'Exchange Server 2010 SP1 Hosting Mode', N'WebsitePanel.Providers.ExchangeHostedEdition.Exchange2010SP1, WebsitePanel.Providers.ExchangeHostedEdition', N'Exchange2010SP1', 1)
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (208, 20, N'HostedSharePoint2010', N'Hosted SharePoint Foundation 2010', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer2010, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL)
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (209, 23, N'MsSQL', N'Microsoft SQL Server 2012', N'WebsitePanel.Providers.Database.MsSqlServer2012, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL)

View file

@ -36,37 +36,35 @@ UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 5 WHERE [GroupName] = N'Exchang
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 6 WHERE [GroupName] = N'Hosted Organizations'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 7 WHERE [GroupName] = N'ExchangeHostedEdition'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 7 WHERE [GroupName] = N'MsSQL2000'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 8 WHERE [GroupName] = N'MsSQL2000'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 8 WHERE [GroupName] = N'MsSQL2005'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 9 WHERE [GroupName] = N'MsSQL2005'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 9 WHERE [GroupName] = N'MsSQL2008'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 10 WHERE [GroupName] = N'MsSQL2008'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 10 WHERE [GroupName] = N'MsSQL2012'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 11 WHERE [GroupName] = N'MsSQL2012'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 11 WHERE [GroupName] = N'MySQL4'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 12 WHERE [GroupName] = N'MySQL4'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 12 WHERE [GroupName] = N'MySQL5'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 13 WHERE [GroupName] = N'MySQL5'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 13 WHERE [GroupName] = N'SharePoint'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 14 WHERE [GroupName] = N'SharePoint'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 14 WHERE [GroupName] = N'Hosted SharePoint'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 15 WHERE [GroupName] = N'Hosted SharePoint'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 15 WHERE [GroupName] = N'Hosted CRM'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 16 WHERE [GroupName] = N'Hosted CRM'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 16 WHERE [GroupName] = N'DNS'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 17 WHERE [GroupName] = N'DNS'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 17 WHERE [GroupName] = N'Statistics'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 18 WHERE [GroupName] = N'Statistics'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 18 WHERE [GroupName] = N'VPS'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 19 WHERE [GroupName] = N'VPS'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 19 WHERE [GroupName] = N'VPSForPC'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 20 WHERE [GroupName] = N'VPSForPC'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 20 WHERE [GroupName] = N'BlackBerry'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 21 WHERE [GroupName] = N'BlackBerry'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 22 WHERE [GroupName] = N'OCS'
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 21 WHERE [GroupName] = N'OCS'
GO
IF NOT EXISTS (SELECT * FROM [dbo].[ServiceItemTypes] WHERE [DisplayName] = 'MsSQL2012Database')
@ -1497,4 +1495,38 @@ GO
UPDATE dbo.Quotas SET QuotaTypeID = 2 WHERE QuotaName = 'HostedSharePoint.Sites'
GO
-- Remove ExchangeHostedEdition Quotas
DELETE FROM Quotas WHERE QuotaID = 340
GO
DELETE FROM Quotas WHERE QuotaID = 341
GO
DELETE FROM Quotas WHERE QuotaID = 342
GO
DELETE FROM Quotas WHERE QuotaID = 343
GO
-- Remove ExchangeHostedEdition ServiceItemType
DELETE FROM ServiceItemTypes WHERE ItemTypeID = 40
GO
-- Remove ExchangeHostedEdition ServiceDefaultProperties
DELETE FROM ServiceDefaultProperties WHERE ProviderID = 207
GO
-- Remove ExchangeHostedEdition Provider
DELETE FROM Providers WHERE ProviderID = 207
GO
-- Remove ExchangeHostedEdition ResourceGroups
DELETE FROM ResourceGroups WHERE GRoupID = 33
GO

View file

@ -42,7 +42,6 @@ namespace WebsitePanel.EnterpriseServer
public const string NAME_SERVERS = "NameServers";
public const string SHARED_SSL_SITES = "SharedSslSites";
public const string EXCHANGE_SERVER = "ExchangeServer";
public const string EXCHANGE_HOSTED_EDITION = "ExchangeHostedEdition";
public const string HOSTED_SOLLUTION = "HostedSollution";
public const string VIRTUAL_PRIVATE_SERVERS = "VirtualPrivateServers";

View file

@ -105,10 +105,6 @@ order by rg.groupOrder
public const string EXCHANGE2007_OWAENABLED = "Exchange2007.OWAEnabled"; // OWA Enabled by default
public const string EXCHANGE2007_MAPIENABLED = "Exchange2007.MAPIEnabled"; // MAPI Enabled by default
public const string EXCHANGE2007_ACTIVESYNCENABLED = "Exchange2007.ActiveSyncEnabled"; // ActiveSync Enabled by default
public const string EXCHANGEHOSTEDEDITION_DOMAINS = "ExchangeHostedEdition.Domains";
public const string EXCHANGEHOSTEDEDITION_MAILBOXES = "ExchangeHostedEdition.Mailboxes";
public const string EXCHANGEHOSTEDEDITION_CONTACTS = "ExchangeHostedEdition.Contacts";
public const string EXCHANGEHOSTEDEDITION_DISTRIBUTIONLISTS = "ExchangeHostedEdition.DistributionLists";
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size

View file

@ -45,7 +45,6 @@ namespace WebsitePanel.EnterpriseServer
public const string SharePoint = "SharePoint";
public const string HostedSharePoint = "Hosted SharePoint";
public const string Exchange = "Exchange";
public const string ExchangeHostedEdition = "ExchangeHostedEdition";
public const string HostedOrganizations = "Hosted Organizations";
public const string HostedCRM = "Hosted CRM";
public const string VPS = "VPS";

View file

@ -41,7 +41,6 @@ namespace WebsitePanel.EnterpriseServer
public const string PACKAGE_SUMMARY_LETTER = "PackageSummaryLetter";
public const string PASSWORD_REMINDER_LETTER = "PasswordReminderLetter";
public const string EXCHANGE_MAILBOX_SETUP_LETTER = "ExchangeMailboxSetupLetter";
public const string EXCHANGE_HOSTED_EDITION_ORGANIZATION_SUMMARY = "ExchangeHostedEditionOrganizationSummary";
public const string HOSTED_SOLUTION_REPORT = "HostedSoluitonReportSummaryLetter";
public const string ORGANIZATION_USER_SUMMARY_LETTER = "OrganizationUserSummaryLetter";
public const string VPS_SUMMARY_LETTER = "VpsSummaryLetter";
@ -53,7 +52,6 @@ namespace WebsitePanel.EnterpriseServer
public const string SHAREPOINT_POLICY = "SharePointPolicy";
public const string OS_POLICY = "OsPolicy";
public const string EXCHANGE_POLICY = "ExchangePolicy";
public const string EXCHANGE_HOSTED_EDITION_POLICY = "ExchangeHostedEditionPolicy";
public const string WEBSITEPANEL_POLICY = "WebsitePanelPolicy";
public const string VPS_POLICY = "VpsPolicy";
public const string DISPLAY_PREFS = "DisplayPreferences";

View file

@ -1,950 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.4952
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
//
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
//
namespace WebsitePanel.EnterpriseServer {
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Diagnostics;
using WebsitePanel.Providers;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ExchangeHostedEdition;
using WebsitePanel.Providers.ResultObjects;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="esExchangeHostedEditionSoap", Namespace="http://smbsaas/websitepanel/enterpriseserver")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
public partial class esExchangeHostedEdition : Microsoft.Web.Services3.WebServicesClientProtocol {
private System.Threading.SendOrPostCallback GetOrganizationsOperationCompleted;
private System.Threading.SendOrPostCallback CreateExchangeOrganizationOperationCompleted;
private System.Threading.SendOrPostCallback GetExchangeOrganizationDetailsOperationCompleted;
private System.Threading.SendOrPostCallback GetExchangeOrganizationDomainsOperationCompleted;
private System.Threading.SendOrPostCallback GetExchangeOrganizationSummaryOperationCompleted;
private System.Threading.SendOrPostCallback SendExchangeOrganizationSummaryOperationCompleted;
private System.Threading.SendOrPostCallback AddExchangeOrganizationDomainOperationCompleted;
private System.Threading.SendOrPostCallback DeleteExchangeOrganizationDomainOperationCompleted;
private System.Threading.SendOrPostCallback UpdateExchangeOrganizationQuotasOperationCompleted;
private System.Threading.SendOrPostCallback UpdateExchangeOrganizationCatchAllAddressOperationCompleted;
private System.Threading.SendOrPostCallback UpdateExchangeOrganizationServicePlanOperationCompleted;
private System.Threading.SendOrPostCallback DeleteExchangeOrganizationOperationCompleted;
/// <remarks/>
public esExchangeHostedEdition() {
this.Url = "http://localhost:9002/esExchangeHostedEdition.asmx";
}
/// <remarks/>
public event GetOrganizationsCompletedEventHandler GetOrganizationsCompleted;
/// <remarks/>
public event CreateExchangeOrganizationCompletedEventHandler CreateExchangeOrganizationCompleted;
/// <remarks/>
public event GetExchangeOrganizationDetailsCompletedEventHandler GetExchangeOrganizationDetailsCompleted;
/// <remarks/>
public event GetExchangeOrganizationDomainsCompletedEventHandler GetExchangeOrganizationDomainsCompleted;
/// <remarks/>
public event GetExchangeOrganizationSummaryCompletedEventHandler GetExchangeOrganizationSummaryCompleted;
/// <remarks/>
public event SendExchangeOrganizationSummaryCompletedEventHandler SendExchangeOrganizationSummaryCompleted;
/// <remarks/>
public event AddExchangeOrganizationDomainCompletedEventHandler AddExchangeOrganizationDomainCompleted;
/// <remarks/>
public event DeleteExchangeOrganizationDomainCompletedEventHandler DeleteExchangeOrganizationDomainCompleted;
/// <remarks/>
public event UpdateExchangeOrganizationQuotasCompletedEventHandler UpdateExchangeOrganizationQuotasCompleted;
/// <remarks/>
public event UpdateExchangeOrganizationCatchAllAddressCompletedEventHandler UpdateExchangeOrganizationCatchAllAddressCompleted;
/// <remarks/>
public event UpdateExchangeOrganizationServicePlanCompletedEventHandler UpdateExchangeOrganizationServicePlanCompleted;
/// <remarks/>
public event DeleteExchangeOrganizationCompletedEventHandler DeleteExchangeOrganizationCompleted;
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetOrganizations", 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 ExchangeOrganization[] GetOrganizations(int packageId) {
object[] results = this.Invoke("GetOrganizations", new object[] {
packageId});
return ((ExchangeOrganization[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetOrganizations(int packageId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetOrganizations", new object[] {
packageId}, callback, asyncState);
}
/// <remarks/>
public ExchangeOrganization[] EndGetOrganizations(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ExchangeOrganization[])(results[0]));
}
/// <remarks/>
public void GetOrganizationsAsync(int packageId) {
this.GetOrganizationsAsync(packageId, null);
}
/// <remarks/>
public void GetOrganizationsAsync(int packageId, object userState) {
if ((this.GetOrganizationsOperationCompleted == null)) {
this.GetOrganizationsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetOrganizationsOperationCompleted);
}
this.InvokeAsync("GetOrganizations", new object[] {
packageId}, this.GetOrganizationsOperationCompleted, userState);
}
private void OnGetOrganizationsOperationCompleted(object arg) {
if ((this.GetOrganizationsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetOrganizationsCompleted(this, new GetOrganizationsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CreateExchangeOrganization", 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 IntResult CreateExchangeOrganization(int packageId, string organizationId, string domain, string adminName, string adminEmail, string adminPassword) {
object[] results = this.Invoke("CreateExchangeOrganization", new object[] {
packageId,
organizationId,
domain,
adminName,
adminEmail,
adminPassword});
return ((IntResult)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginCreateExchangeOrganization(int packageId, string organizationId, string domain, string adminName, string adminEmail, string adminPassword, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("CreateExchangeOrganization", new object[] {
packageId,
organizationId,
domain,
adminName,
adminEmail,
adminPassword}, callback, asyncState);
}
/// <remarks/>
public IntResult EndCreateExchangeOrganization(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((IntResult)(results[0]));
}
/// <remarks/>
public void CreateExchangeOrganizationAsync(int packageId, string organizationId, string domain, string adminName, string adminEmail, string adminPassword) {
this.CreateExchangeOrganizationAsync(packageId, organizationId, domain, adminName, adminEmail, adminPassword, null);
}
/// <remarks/>
public void CreateExchangeOrganizationAsync(int packageId, string organizationId, string domain, string adminName, string adminEmail, string adminPassword, object userState) {
if ((this.CreateExchangeOrganizationOperationCompleted == null)) {
this.CreateExchangeOrganizationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateExchangeOrganizationOperationCompleted);
}
this.InvokeAsync("CreateExchangeOrganization", new object[] {
packageId,
organizationId,
domain,
adminName,
adminEmail,
adminPassword}, this.CreateExchangeOrganizationOperationCompleted, userState);
}
private void OnCreateExchangeOrganizationOperationCompleted(object arg) {
if ((this.CreateExchangeOrganizationCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.CreateExchangeOrganizationCompleted(this, new CreateExchangeOrganizationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetExchangeOrganizationDetails", 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 ExchangeOrganization GetExchangeOrganizationDetails(int itemId) {
object[] results = this.Invoke("GetExchangeOrganizationDetails", new object[] {
itemId});
return ((ExchangeOrganization)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetExchangeOrganizationDetails(int itemId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetExchangeOrganizationDetails", new object[] {
itemId}, callback, asyncState);
}
/// <remarks/>
public ExchangeOrganization EndGetExchangeOrganizationDetails(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ExchangeOrganization)(results[0]));
}
/// <remarks/>
public void GetExchangeOrganizationDetailsAsync(int itemId) {
this.GetExchangeOrganizationDetailsAsync(itemId, null);
}
/// <remarks/>
public void GetExchangeOrganizationDetailsAsync(int itemId, object userState) {
if ((this.GetExchangeOrganizationDetailsOperationCompleted == null)) {
this.GetExchangeOrganizationDetailsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExchangeOrganizationDetailsOperationCompleted);
}
this.InvokeAsync("GetExchangeOrganizationDetails", new object[] {
itemId}, this.GetExchangeOrganizationDetailsOperationCompleted, userState);
}
private void OnGetExchangeOrganizationDetailsOperationCompleted(object arg) {
if ((this.GetExchangeOrganizationDetailsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetExchangeOrganizationDetailsCompleted(this, new GetExchangeOrganizationDetailsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetExchangeOrganizationDomains", 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 ExchangeOrganizationDomain[] GetExchangeOrganizationDomains(int itemId) {
object[] results = this.Invoke("GetExchangeOrganizationDomains", new object[] {
itemId});
return ((ExchangeOrganizationDomain[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetExchangeOrganizationDomains(int itemId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetExchangeOrganizationDomains", new object[] {
itemId}, callback, asyncState);
}
/// <remarks/>
public ExchangeOrganizationDomain[] EndGetExchangeOrganizationDomains(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ExchangeOrganizationDomain[])(results[0]));
}
/// <remarks/>
public void GetExchangeOrganizationDomainsAsync(int itemId) {
this.GetExchangeOrganizationDomainsAsync(itemId, null);
}
/// <remarks/>
public void GetExchangeOrganizationDomainsAsync(int itemId, object userState) {
if ((this.GetExchangeOrganizationDomainsOperationCompleted == null)) {
this.GetExchangeOrganizationDomainsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExchangeOrganizationDomainsOperationCompleted);
}
this.InvokeAsync("GetExchangeOrganizationDomains", new object[] {
itemId}, this.GetExchangeOrganizationDomainsOperationCompleted, userState);
}
private void OnGetExchangeOrganizationDomainsOperationCompleted(object arg) {
if ((this.GetExchangeOrganizationDomainsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetExchangeOrganizationDomainsCompleted(this, new GetExchangeOrganizationDomainsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetExchangeOrganizationSummary", 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 string GetExchangeOrganizationSummary(int itemId) {
object[] results = this.Invoke("GetExchangeOrganizationSummary", new object[] {
itemId});
return ((string)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetExchangeOrganizationSummary(int itemId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetExchangeOrganizationSummary", new object[] {
itemId}, callback, asyncState);
}
/// <remarks/>
public string EndGetExchangeOrganizationSummary(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((string)(results[0]));
}
/// <remarks/>
public void GetExchangeOrganizationSummaryAsync(int itemId) {
this.GetExchangeOrganizationSummaryAsync(itemId, null);
}
/// <remarks/>
public void GetExchangeOrganizationSummaryAsync(int itemId, object userState) {
if ((this.GetExchangeOrganizationSummaryOperationCompleted == null)) {
this.GetExchangeOrganizationSummaryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExchangeOrganizationSummaryOperationCompleted);
}
this.InvokeAsync("GetExchangeOrganizationSummary", new object[] {
itemId}, this.GetExchangeOrganizationSummaryOperationCompleted, userState);
}
private void OnGetExchangeOrganizationSummaryOperationCompleted(object arg) {
if ((this.GetExchangeOrganizationSummaryCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetExchangeOrganizationSummaryCompleted(this, new GetExchangeOrganizationSummaryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SendExchangeOrganizationSummary", 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 ResultObject SendExchangeOrganizationSummary(int itemId, string toEmail) {
object[] results = this.Invoke("SendExchangeOrganizationSummary", new object[] {
itemId,
toEmail});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginSendExchangeOrganizationSummary(int itemId, string toEmail, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("SendExchangeOrganizationSummary", new object[] {
itemId,
toEmail}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndSendExchangeOrganizationSummary(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void SendExchangeOrganizationSummaryAsync(int itemId, string toEmail) {
this.SendExchangeOrganizationSummaryAsync(itemId, toEmail, null);
}
/// <remarks/>
public void SendExchangeOrganizationSummaryAsync(int itemId, string toEmail, object userState) {
if ((this.SendExchangeOrganizationSummaryOperationCompleted == null)) {
this.SendExchangeOrganizationSummaryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSendExchangeOrganizationSummaryOperationCompleted);
}
this.InvokeAsync("SendExchangeOrganizationSummary", new object[] {
itemId,
toEmail}, this.SendExchangeOrganizationSummaryOperationCompleted, userState);
}
private void OnSendExchangeOrganizationSummaryOperationCompleted(object arg) {
if ((this.SendExchangeOrganizationSummaryCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.SendExchangeOrganizationSummaryCompleted(this, new SendExchangeOrganizationSummaryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/AddExchangeOrganizationDomain", 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 ResultObject AddExchangeOrganizationDomain(int itemId, string domain) {
object[] results = this.Invoke("AddExchangeOrganizationDomain", new object[] {
itemId,
domain});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginAddExchangeOrganizationDomain(int itemId, string domain, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("AddExchangeOrganizationDomain", new object[] {
itemId,
domain}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndAddExchangeOrganizationDomain(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void AddExchangeOrganizationDomainAsync(int itemId, string domain) {
this.AddExchangeOrganizationDomainAsync(itemId, domain, null);
}
/// <remarks/>
public void AddExchangeOrganizationDomainAsync(int itemId, string domain, object userState) {
if ((this.AddExchangeOrganizationDomainOperationCompleted == null)) {
this.AddExchangeOrganizationDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddExchangeOrganizationDomainOperationCompleted);
}
this.InvokeAsync("AddExchangeOrganizationDomain", new object[] {
itemId,
domain}, this.AddExchangeOrganizationDomainOperationCompleted, userState);
}
private void OnAddExchangeOrganizationDomainOperationCompleted(object arg) {
if ((this.AddExchangeOrganizationDomainCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.AddExchangeOrganizationDomainCompleted(this, new AddExchangeOrganizationDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteExchangeOrganizationDomain", 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 ResultObject DeleteExchangeOrganizationDomain(int itemId, string domain) {
object[] results = this.Invoke("DeleteExchangeOrganizationDomain", new object[] {
itemId,
domain});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginDeleteExchangeOrganizationDomain(int itemId, string domain, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("DeleteExchangeOrganizationDomain", new object[] {
itemId,
domain}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndDeleteExchangeOrganizationDomain(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void DeleteExchangeOrganizationDomainAsync(int itemId, string domain) {
this.DeleteExchangeOrganizationDomainAsync(itemId, domain, null);
}
/// <remarks/>
public void DeleteExchangeOrganizationDomainAsync(int itemId, string domain, object userState) {
if ((this.DeleteExchangeOrganizationDomainOperationCompleted == null)) {
this.DeleteExchangeOrganizationDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteExchangeOrganizationDomainOperationCompleted);
}
this.InvokeAsync("DeleteExchangeOrganizationDomain", new object[] {
itemId,
domain}, this.DeleteExchangeOrganizationDomainOperationCompleted, userState);
}
private void OnDeleteExchangeOrganizationDomainOperationCompleted(object arg) {
if ((this.DeleteExchangeOrganizationDomainCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.DeleteExchangeOrganizationDomainCompleted(this, new DeleteExchangeOrganizationDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateExchangeOrganizationQuotas", 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 ResultObject UpdateExchangeOrganizationQuotas(int itemId, int mailboxesNumber, int contactsNumber, int distributionListsNumber) {
object[] results = this.Invoke("UpdateExchangeOrganizationQuotas", new object[] {
itemId,
mailboxesNumber,
contactsNumber,
distributionListsNumber});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginUpdateExchangeOrganizationQuotas(int itemId, int mailboxesNumber, int contactsNumber, int distributionListsNumber, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateExchangeOrganizationQuotas", new object[] {
itemId,
mailboxesNumber,
contactsNumber,
distributionListsNumber}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndUpdateExchangeOrganizationQuotas(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void UpdateExchangeOrganizationQuotasAsync(int itemId, int mailboxesNumber, int contactsNumber, int distributionListsNumber) {
this.UpdateExchangeOrganizationQuotasAsync(itemId, mailboxesNumber, contactsNumber, distributionListsNumber, null);
}
/// <remarks/>
public void UpdateExchangeOrganizationQuotasAsync(int itemId, int mailboxesNumber, int contactsNumber, int distributionListsNumber, object userState) {
if ((this.UpdateExchangeOrganizationQuotasOperationCompleted == null)) {
this.UpdateExchangeOrganizationQuotasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateExchangeOrganizationQuotasOperationCompleted);
}
this.InvokeAsync("UpdateExchangeOrganizationQuotas", new object[] {
itemId,
mailboxesNumber,
contactsNumber,
distributionListsNumber}, this.UpdateExchangeOrganizationQuotasOperationCompleted, userState);
}
private void OnUpdateExchangeOrganizationQuotasOperationCompleted(object arg) {
if ((this.UpdateExchangeOrganizationQuotasCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateExchangeOrganizationQuotasCompleted(this, new UpdateExchangeOrganizationQuotasCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateExchangeOrganizationCatchAllAd" +
"dress", 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 ResultObject UpdateExchangeOrganizationCatchAllAddress(int itemId, string catchAllEmail) {
object[] results = this.Invoke("UpdateExchangeOrganizationCatchAllAddress", new object[] {
itemId,
catchAllEmail});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginUpdateExchangeOrganizationCatchAllAddress(int itemId, string catchAllEmail, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateExchangeOrganizationCatchAllAddress", new object[] {
itemId,
catchAllEmail}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndUpdateExchangeOrganizationCatchAllAddress(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void UpdateExchangeOrganizationCatchAllAddressAsync(int itemId, string catchAllEmail) {
this.UpdateExchangeOrganizationCatchAllAddressAsync(itemId, catchAllEmail, null);
}
/// <remarks/>
public void UpdateExchangeOrganizationCatchAllAddressAsync(int itemId, string catchAllEmail, object userState) {
if ((this.UpdateExchangeOrganizationCatchAllAddressOperationCompleted == null)) {
this.UpdateExchangeOrganizationCatchAllAddressOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateExchangeOrganizationCatchAllAddressOperationCompleted);
}
this.InvokeAsync("UpdateExchangeOrganizationCatchAllAddress", new object[] {
itemId,
catchAllEmail}, this.UpdateExchangeOrganizationCatchAllAddressOperationCompleted, userState);
}
private void OnUpdateExchangeOrganizationCatchAllAddressOperationCompleted(object arg) {
if ((this.UpdateExchangeOrganizationCatchAllAddressCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateExchangeOrganizationCatchAllAddressCompleted(this, new UpdateExchangeOrganizationCatchAllAddressCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateExchangeOrganizationServicePla" +
"n", 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 ResultObject UpdateExchangeOrganizationServicePlan(int itemId, int newServiceId) {
object[] results = this.Invoke("UpdateExchangeOrganizationServicePlan", new object[] {
itemId,
newServiceId});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginUpdateExchangeOrganizationServicePlan(int itemId, int newServiceId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateExchangeOrganizationServicePlan", new object[] {
itemId,
newServiceId}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndUpdateExchangeOrganizationServicePlan(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void UpdateExchangeOrganizationServicePlanAsync(int itemId, int newServiceId) {
this.UpdateExchangeOrganizationServicePlanAsync(itemId, newServiceId, null);
}
/// <remarks/>
public void UpdateExchangeOrganizationServicePlanAsync(int itemId, int newServiceId, object userState) {
if ((this.UpdateExchangeOrganizationServicePlanOperationCompleted == null)) {
this.UpdateExchangeOrganizationServicePlanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateExchangeOrganizationServicePlanOperationCompleted);
}
this.InvokeAsync("UpdateExchangeOrganizationServicePlan", new object[] {
itemId,
newServiceId}, this.UpdateExchangeOrganizationServicePlanOperationCompleted, userState);
}
private void OnUpdateExchangeOrganizationServicePlanOperationCompleted(object arg) {
if ((this.UpdateExchangeOrganizationServicePlanCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateExchangeOrganizationServicePlanCompleted(this, new UpdateExchangeOrganizationServicePlanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteExchangeOrganization", 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 ResultObject DeleteExchangeOrganization(int itemId) {
object[] results = this.Invoke("DeleteExchangeOrganization", new object[] {
itemId});
return ((ResultObject)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginDeleteExchangeOrganization(int itemId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("DeleteExchangeOrganization", new object[] {
itemId}, callback, asyncState);
}
/// <remarks/>
public ResultObject EndDeleteExchangeOrganization(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ResultObject)(results[0]));
}
/// <remarks/>
public void DeleteExchangeOrganizationAsync(int itemId) {
this.DeleteExchangeOrganizationAsync(itemId, null);
}
/// <remarks/>
public void DeleteExchangeOrganizationAsync(int itemId, object userState) {
if ((this.DeleteExchangeOrganizationOperationCompleted == null)) {
this.DeleteExchangeOrganizationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteExchangeOrganizationOperationCompleted);
}
this.InvokeAsync("DeleteExchangeOrganization", new object[] {
itemId}, this.DeleteExchangeOrganizationOperationCompleted, userState);
}
private void OnDeleteExchangeOrganizationOperationCompleted(object arg) {
if ((this.DeleteExchangeOrganizationCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.DeleteExchangeOrganizationCompleted(this, new DeleteExchangeOrganizationCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationsCompletedEventHandler(object sender, GetOrganizationsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetOrganizationsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ExchangeOrganization[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((ExchangeOrganization[])(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateExchangeOrganizationCompletedEventHandler(object sender, CreateExchangeOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateExchangeOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal CreateExchangeOrganizationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public IntResult Result {
get {
this.RaiseExceptionIfNecessary();
return ((IntResult)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetExchangeOrganizationDetailsCompletedEventHandler(object sender, GetExchangeOrganizationDetailsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetExchangeOrganizationDetailsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetExchangeOrganizationDetailsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ExchangeOrganization Result {
get {
this.RaiseExceptionIfNecessary();
return ((ExchangeOrganization)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetExchangeOrganizationDomainsCompletedEventHandler(object sender, GetExchangeOrganizationDomainsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetExchangeOrganizationDomainsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetExchangeOrganizationDomainsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ExchangeOrganizationDomain[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((ExchangeOrganizationDomain[])(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetExchangeOrganizationSummaryCompletedEventHandler(object sender, GetExchangeOrganizationSummaryCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetExchangeOrganizationSummaryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetExchangeOrganizationSummaryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SendExchangeOrganizationSummaryCompletedEventHandler(object sender, SendExchangeOrganizationSummaryCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SendExchangeOrganizationSummaryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal SendExchangeOrganizationSummaryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void AddExchangeOrganizationDomainCompletedEventHandler(object sender, AddExchangeOrganizationDomainCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class AddExchangeOrganizationDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal AddExchangeOrganizationDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteExchangeOrganizationDomainCompletedEventHandler(object sender, DeleteExchangeOrganizationDomainCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteExchangeOrganizationDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal DeleteExchangeOrganizationDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateExchangeOrganizationQuotasCompletedEventHandler(object sender, UpdateExchangeOrganizationQuotasCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class UpdateExchangeOrganizationQuotasCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal UpdateExchangeOrganizationQuotasCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateExchangeOrganizationCatchAllAddressCompletedEventHandler(object sender, UpdateExchangeOrganizationCatchAllAddressCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class UpdateExchangeOrganizationCatchAllAddressCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal UpdateExchangeOrganizationCatchAllAddressCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateExchangeOrganizationServicePlanCompletedEventHandler(object sender, UpdateExchangeOrganizationServicePlanCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class UpdateExchangeOrganizationServicePlanCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal UpdateExchangeOrganizationServicePlanCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteExchangeOrganizationCompletedEventHandler(object sender, DeleteExchangeOrganizationCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteExchangeOrganizationCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal DeleteExchangeOrganizationCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ResultObject Result {
get {
this.RaiseExceptionIfNecessary();
return ((ResultObject)(this.results[0]));
}
}
}
}

View file

@ -93,7 +93,6 @@
<Compile Include="ecServiceHandlerProxy.cs" />
<Compile Include="ecStorefrontProxy.cs" />
<Compile Include="ecStorehouseProxy.cs" />
<Compile Include="ExchangeHostedEditionProxy.cs" />
<Compile Include="FilesProxy.cs" />
<Compile Include="FtpServersProxy.cs" />
<Compile Include="HostedSharePointServersProxy.cs" />

View file

@ -1,896 +0,0 @@
// 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 WebsitePanel.Providers.ExchangeHostedEdition;
using WebsitePanel.Providers.ResultObjects;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers;
using System.Collections.Specialized;
using System.Collections;
using System.Net.Mail;
namespace WebsitePanel.EnterpriseServer
{
public class ExchangeHostedEditionController
{
// messages
public const string GeneralError = "GeneralError";
public const string ExchangeServiceNotEnabledError = "ExchangeServiceNotEnabledError";
public const string ProgramIdIsNotSetError = "ProgramIdIsNotSetError";
public const string OfferIdIsNotSetError = "OfferIdIsNotSetError";
public const string CreateOrganizationError = "CreateOrganizationError";
public const string OrganizationNotFoundError = "OrganizationNotFoundError";
public const string SendOrganizationSummaryError = "SendOrganizationSummaryError";
public const string SendOrganizationTemplateNotSetError = "SendOrganizationTemplateNotSetError";
public const string AddDomainError = "AddDomainError";
public const string AddDomainQuotaExceededError = "AddDomainQuotaExceededError";
public const string AddDomainExistsError = "AddDomainExistsError";
public const string AddDomainAlreadyUsedError = "AddDomainAlreadyUsedError";
public const string DeleteDomainError = "DeleteDomainError";
public const string UpdateQuotasError = "UpdateQuotasError";
public const string UpdateQuotasWrongQuotaError = "UpdateQuotasWrongQuotaError";
public const string UpdateCatchAllError = "UpdateCatchAllError";
public const string UpdateServicePlanError = "UpdateServicePlanError";
public const string DeleteOrganizationError = "DeleteOrganizationError";
public const string TempDomainSetting = "temporaryDomain";
public const string ExchangeControlPanelUrlSetting = "ecpURL";
// other constants
public const string TaskManagerSource = "ExchangeHostedEdition";
public static IntResult CreateOrganization(int packageId, string organizationId,
string domain, string adminName, string adminEmail, string adminPassword)
{
IntResult result = new IntResult();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "CREATE_ORGANIZATION");
TaskManager.WriteParameter("packageId", packageId);
TaskManager.WriteParameter("organizationId", organizationId);
TaskManager.WriteParameter("domain", domain);
TaskManager.WriteParameter("adminName", adminName);
TaskManager.WriteParameter("adminEmail", adminEmail);
TaskManager.WriteParameter("adminPassword", adminPassword);
// get Exchange service ID
int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.ExchangeHostedEdition);
if(serviceId < 1)
return Error<IntResult>(ExchangeServiceNotEnabledError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<IntResult>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(packageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<IntResult>((-packageCheck).ToString());
#endregion
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(serviceId);
// load service settings to know ProgramID, OfferID
StringDictionary serviceSettings = ServerController.GetServiceSettings(serviceId);
string programId = serviceSettings["programID"];
string offerId = serviceSettings["offerID"];
// check settings
if(String.IsNullOrEmpty(programId))
result.ErrorCodes.Add(ProgramIdIsNotSetError);
if (String.IsNullOrEmpty(offerId))
result.ErrorCodes.Add(OfferIdIsNotSetError);
if (result.ErrorCodes.Count > 0)
{
result.IsSuccess = false;
return result;
}
#region Create organization
int itemId = -1;
ExchangeOrganization org = null;
try
{
// create organization
exchange.CreateOrganization(organizationId, programId, offerId, domain, adminName, adminEmail, adminPassword);
// save item into meta-base
org = new ExchangeOrganization();
org.Name = organizationId;
org.PackageId = packageId;
org.ServiceId = serviceId;
itemId = PackageController.AddPackageItem(org);
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
return Error<IntResult>(CreateOrganizationError);
}
#endregion
#region Update organization quotas
// update max org quotas
UpdateOrganizationQuotas(org);
// override quotas
ResultObject quotasResult = ExchangeHostedEditionController.UpdateOrganizationQuotas(itemId,
org.MaxMailboxCountQuota,
org.MaxContactCountQuota,
org.MaxDistributionListCountQuota);
if (!quotasResult.IsSuccess)
return Error<IntResult>(quotasResult, CreateOrganizationError);
#endregion
#region Add temporary domain
// load settings
PackageSettings settings = GetExchangePackageSettings(org);
string tempDomainTemplate = settings[TempDomainSetting];
if (!String.IsNullOrEmpty(tempDomainTemplate))
{
// add temp domain
string tempDomain = String.Format("{0}.{1}", domain, tempDomainTemplate);
AddOrganizationDomain(itemId, tempDomain);
}
#endregion
result.Value = itemId;
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<IntResult>(GeneralError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static List<ExchangeOrganization> GetOrganizations(int packageId)
{
List<ServiceProviderItem> items = PackageController.GetPackageItemsByType(
packageId, typeof(ExchangeOrganization), false);
return items.ConvertAll<ExchangeOrganization>(i => { return (ExchangeOrganization)i; });
}
public static ExchangeOrganization GetOrganizationDetails(int itemId)
{
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return null; // organization item not found
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// get organization details
ExchangeOrganization org = exchange.GetOrganizationDetails(item.Name);
//ExchangeOrganization org = new ExchangeOrganization
//{
// Id = item.Id,
// PackageId = item.PackageId,
// ServiceId = item.ServiceId,
// Name = item.Name,
// AdministratorEmail = "admin@email.com",
// AdministratorName = "Administrator Mailbox",
// CatchAllAddress = "",
// ContactCount = 1,
// ContactCountQuota = 2,
// MaxContactCountQuota = 3,
// DistinguishedName = "DN=....",
// DistributionListCount = 2,
// DistributionListCountQuota = 3,
// MaxDistributionListCountQuota = 3,
// MaxDomainsCountQuota = 4,
// ExchangeControlPanelUrl = "http://ecp.domain.com",
// MailboxCount = 3,
// MailboxCountQuota = 4,
// MaxMailboxCountQuota = 4,
// ProgramId = "HostedExchange",
// OfferId = "2",
// ServicePlan = "HostedExchange_Basic",
// Domains = GetOrganizationDomains(item.Id).ToArray()
//};
// update item props
org.Id = item.Id;
org.PackageId = item.PackageId;
org.ServiceId = item.ServiceId;
org.Name = item.Name;
org.CatchAllAddress = item.CatchAllAddress;
// update max quotas
UpdateOrganizationQuotas(org);
// process summary information
org.SummaryInformation = GetExchangeOrganizationSummary(org);
// process domains
PackageSettings settings = GetExchangePackageSettings(org);
if(settings != null)
{
// get settings
string tempDomain = settings[TempDomainSetting];
string ecpUrl = settings[ExchangeControlPanelUrlSetting];
// iterate through domains
foreach (ExchangeOrganizationDomain domain in org.Domains)
{
if (tempDomain != null && domain.Name.EndsWith("." + tempDomain, StringComparison.InvariantCultureIgnoreCase))
domain.IsTemp = true;
if (domain.IsDefault && ecpUrl != null)
org.ExchangeControlPanelUrl = Utils.ReplaceStringVariable(ecpUrl, "domain_name", domain.Name);
}
}
// return org
return org;
}
public static void UpdateOrganizationQuotas(ExchangeOrganization org)
{
// load default package quotas
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
if (!cntx.Groups.ContainsKey(ResourceGroups.ExchangeHostedEdition))
return;
org.MaxMailboxCountQuota = cntx.Quotas[Quotas.EXCHANGEHOSTEDEDITION_MAILBOXES].QuotaAllocatedValue;
org.MaxContactCountQuota = cntx.Quotas[Quotas.EXCHANGEHOSTEDEDITION_CONTACTS].QuotaAllocatedValue;
org.MaxDistributionListCountQuota = cntx.Quotas[Quotas.EXCHANGEHOSTEDEDITION_DISTRIBUTIONLISTS].QuotaAllocatedValue;
org.MaxDomainsCountQuota = cntx.Quotas[Quotas.EXCHANGEHOSTEDEDITION_DOMAINS].QuotaAllocatedValue;
}
public static List<ExchangeOrganizationDomain> GetOrganizationDomains(int itemId)
{
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return null; // organization item not found
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// get organization domains
List<ExchangeOrganizationDomain> domains = new List<ExchangeOrganizationDomain>();
domains.AddRange(exchange.GetOrganizationDomains(item.Name));
return domains;
//return new List<ExchangeOrganizationDomain>
//{
// new ExchangeOrganizationDomain { Identity = "org101\\domain1.com", Name = "domain1.com", IsDefault = true, IsTemp = false },
// new ExchangeOrganizationDomain { Identity = "org101\\org101.tempdomain.com", Name = "org101.tempdomain.com", IsDefault = false, IsTemp = true },
// new ExchangeOrganizationDomain { Identity = "org101\\myseconddomain.com", Name = "myseconddomain.com", IsDefault = false, IsTemp = false }
//};
}
public static string GetExchangeOrganizationSummary(int itemId)
{
// load organization details
ExchangeOrganization org = GetOrganizationDetails(itemId);
if (org == null)
return null; // organization not found
return GetExchangeOrganizationSummary(org);
}
private static string GetExchangeOrganizationSummary(ExchangeOrganization org)
{
// evaluate template
MailTemplate template = EvaluateOrganizationSummaryTemplate(org);
if (template == null || template.Body == null)
return null;
return template.IsHtml ? template.Body : template.Body.Replace("\n", "<br/>");
}
private static MailTemplate EvaluateOrganizationSummaryTemplate(ExchangeOrganization org)
{
#region create template context
Hashtable items = new Hashtable();
// add organization
items["org"] = org;
// add package information
PackageInfo space = PackageController.GetPackage(org.PackageId);
items["space"] = space;
// add user information
UserInfo user = UserController.GetUser(space.UserId);
items["user"] = user;
#endregion
#region load template
// load template settings
UserSettings settings = UserController.GetUserSettings(user.UserId, UserSettings.EXCHANGE_HOSTED_EDITION_ORGANIZATION_SUMMARY);
if(settings == null)
return null;
// create template
MailTemplate template = new MailTemplate();
// from
template.From = settings["From"];
// BCC
template.Bcc = settings["CC"];
// subject
template.Subject = settings["Subject"];
// body
template.IsHtml = user.HtmlMail;
string bodySetting = template.IsHtml ? "HtmlBody" : "TextBody";
template.Body = settings[bodySetting];
// priority
string priority = settings["Priority"];
template.Priority = String.IsNullOrEmpty(priority)
? MailPriority.Normal
: (MailPriority)Enum.Parse(typeof(MailPriority), priority, true);
#endregion
#region evaluate template
if(template.Subject != null)
template.Subject = PackageController.EvaluateTemplate(template.Subject, items);
if(template.Body != null)
template.Body = PackageController.EvaluateTemplate(template.Body, items);
#endregion
return template;
}
private static PackageSettings GetExchangePackageSettings(ExchangeOrganization org)
{
// load package settings
return PackageController.GetPackageSettings(org.PackageId, PackageSettings.EXCHANGE_HOSTED_EDITION);
}
public static ResultObject SendExchangeOrganizationSummary(int itemId, string toEmail)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "SEND_SUMMARY");
TaskManager.WriteParameter("Item ID", itemId);
TaskManager.WriteParameter("To e-mail", toEmail);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// load organization details
ExchangeOrganization org = GetOrganizationDetails(item.Id);
if(org == null)
return Error<ResultObject>(OrganizationNotFoundError);
// get evaluated summary information
MailTemplate msg = EvaluateOrganizationSummaryTemplate(org);
if (msg == null)
return Error<ResultObject>(SendOrganizationTemplateNotSetError);
// send message
int sendResult = MailHelper.SendMessage(msg.From, toEmail, msg.Bcc, msg.Subject, msg.Body, msg.Priority, msg.IsHtml);
if (sendResult < 0)
return Error<ResultObject>((-sendResult).ToString());
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(SendOrganizationSummaryError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static ResultObject AddOrganizationDomain(int itemId, string domainName)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "ADD_DOMAIN");
TaskManager.WriteParameter("itemId", itemId);
TaskManager.WriteParameter("domain", domainName);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// get organization details
ExchangeOrganization org = GetOrganizationDetails(item.Id);
if (org == null)
return Error<ResultObject>(OrganizationNotFoundError);
// check domains quota
if(org.MaxDomainsCountQuota > -1 && org.Domains.Length >= org.MaxDomainsCountQuota)
return Error<IntResult>(AddDomainQuotaExceededError);
// check if the domain already exists
DomainInfo domain = null;
int checkResult = ServerController.CheckDomain(domainName);
if (checkResult == BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS)
{
// domain exists
// check if it belongs to the same space
domain = ServerController.GetDomain(domainName);
if (domain == null)
return Error<ResultObject>((-checkResult).ToString());
if (domain.PackageId != org.PackageId)
return Error<ResultObject>((-checkResult).ToString());
// check if domain is already used in this organization
foreach (ExchangeOrganizationDomain orgDomain in org.Domains)
{
if(String.Equals(orgDomain.Name, domainName, StringComparison.InvariantCultureIgnoreCase))
return Error<ResultObject>(AddDomainAlreadyUsedError);
}
}
else if (checkResult == BusinessErrorCodes.ERROR_RESTRICTED_DOMAIN)
{
return Error<ResultObject>((-checkResult).ToString());
}
// create domain if required
if (domain == null)
{
domain = new DomainInfo();
domain.PackageId = org.PackageId;
domain.DomainName = domainName;
domain.IsInstantAlias = false;
domain.IsSubDomain = false;
int domainId = ServerController.AddDomain(domain);
if (domainId < 0)
return Error<ResultObject>((-domainId).ToString());
// add domain
domain.DomainId = domainId;
}
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// add domain
exchange.AddOrganizationDomain(item.Name, domainName);
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(AddDomainError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static ResultObject DeleteOrganizationDomain(int itemId, string domainName)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "DELETE_DOMAIN");
TaskManager.WriteParameter("itemId", itemId);
TaskManager.WriteParameter("domain", domainName);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// delete domain
exchange.DeleteOrganizationDomain(item.Name, domainName);
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(DeleteDomainError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static ResultObject UpdateOrganizationQuotas(int itemId, int mailboxesNumber, int contactsNumber, int distributionListsNumber)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "UPDATE_QUOTAS");
TaskManager.WriteParameter("itemId", itemId);
TaskManager.WriteParameter("mailboxesNumber", mailboxesNumber);
TaskManager.WriteParameter("contactsNumber", contactsNumber);
TaskManager.WriteParameter("distributionListsNumber", distributionListsNumber);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// check quotas
UpdateOrganizationQuotas(item);
if(item.MaxMailboxCountQuota > -1 && mailboxesNumber > item.MaxMailboxCountQuota)
return Error<ResultObject>(UpdateQuotasWrongQuotaError);
if (item.MaxContactCountQuota > -1 && contactsNumber > item.MaxContactCountQuota)
return Error<ResultObject>(UpdateQuotasWrongQuotaError);
if (item.MaxDistributionListCountQuota > -1 && distributionListsNumber > item.MaxDistributionListCountQuota)
return Error<ResultObject>(UpdateQuotasWrongQuotaError);
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// update quotas
exchange.UpdateOrganizationQuotas(item.Name, mailboxesNumber, contactsNumber, distributionListsNumber);
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(UpdateQuotasError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static ResultObject UpdateOrganizationCatchAllAddress(int itemId, string catchAllEmail)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "UPDATE_CATCHALL");
TaskManager.WriteParameter("itemId", itemId);
TaskManager.WriteParameter("catchAllEmail", catchAllEmail);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// update catch-all
exchange.UpdateOrganizationCatchAllAddress(item.Name, catchAllEmail);
// save new catch-all in the item
item.CatchAllAddress = catchAllEmail;
PackageController.UpdatePackageItem(item);
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(UpdateCatchAllError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static ResultObject UpdateOrganizationServicePlan(int itemId, int newServiceId)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "UPDATE_SERVICE");
TaskManager.WriteParameter("itemId", itemId);
TaskManager.WriteParameter("newServiceId", newServiceId);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsAdmin | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// load service settings to know ProgramID, OfferID
StringDictionary serviceSettings = ServerController.GetServiceSettings(newServiceId);
string programId = serviceSettings["programID"];
string offerId = serviceSettings["offerID"];
// check settings
if(String.IsNullOrEmpty(programId))
result.ErrorCodes.Add(ProgramIdIsNotSetError);
if (String.IsNullOrEmpty(offerId))
result.ErrorCodes.Add(OfferIdIsNotSetError);
// update service plan
exchange.UpdateOrganizationServicePlan(item.Name, programId, offerId);
// move item between services
int moveResult = PackageController.MovePackageItem(itemId, newServiceId);
if (moveResult < 0)
return Error<ResultObject>((-moveResult).ToString());
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(UpdateServicePlanError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
public static ResultObject DeleteOrganization(int itemId)
{
ResultObject result = new ResultObject();
result.IsSuccess = true;
try
{
// initialize task manager
TaskManager.StartTask(TaskManagerSource, "DELETE_ORGANIZATION");
TaskManager.WriteParameter("itemId", itemId);
// load organization item
ExchangeOrganization item = PackageController.GetPackageItem(itemId) as ExchangeOrganization;
if (item == null)
return Error<ResultObject>(OrganizationNotFoundError);
#region Check Space and Account
// Check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0)
return Warning<ResultObject>((-accountCheck).ToString());
// Check space
int packageCheck = SecurityContext.CheckPackage(item.PackageId, DemandPackage.IsActive);
if (packageCheck < 0)
return Warning<ResultObject>((-packageCheck).ToString());
#endregion
// get Exchange service
ExchangeServerHostedEdition exchange = GetExchangeService(item.ServiceId);
// delete organization
exchange.DeleteOrganization(item.Name);
// delete meta-item
PackageController.DeletePackageItem(itemId);
return result;
}
catch (Exception ex)
{
// log error
TaskManager.WriteError(ex);
// exit with error code
return Error<ResultObject>(DeleteOrganizationError, ex.Message);
}
finally
{
TaskManager.CompleteTask();
}
}
#region Private helpers
public static ExchangeServerHostedEdition GetExchangeService(int serviceId)
{
ExchangeServerHostedEdition ws = new ExchangeServerHostedEdition();
ServiceProviderProxy.Init(ws, serviceId);
return ws;
}
#endregion
#region Result object routines
private static T Warning<T>(params string[] messageParts)
{
return Warning<T>(null, messageParts);
}
private static T Warning<T>(ResultObject innerResult, params string[] messageParts)
{
return Result<T>(innerResult, false, messageParts);
}
private static T Error<T>(params string[] messageParts)
{
return Error<T>(null, messageParts);
}
private static T Error<T>(ResultObject innerResult, params string[] messageParts)
{
return Result<T>(innerResult, true, messageParts);
}
private static T Result<T>(ResultObject innerResult, bool isError, params string[] messageParts)
{
object obj = Activator.CreateInstance<T>();
ResultObject result = (ResultObject)obj;
// set error
result.IsSuccess = !isError;
// add message
if (messageParts != null)
result.ErrorCodes.Add(String.Join(":", messageParts));
// copy errors from inner result
if (innerResult != null)
result.ErrorCodes.AddRange(innerResult.ErrorCodes);
return (T)obj;
}
#endregion
}
}

View file

@ -1521,19 +1521,6 @@ namespace WebsitePanel.EnterpriseServer
}
}
// Exchange Hosted Edition
else if (String.Compare(PackageSettings.EXCHANGE_HOSTED_EDITION, settingsName, true) == 0)
{
// load Exchange service settings
int exchServiceId = GetPackageServiceId(packageId, ResourceGroups.ExchangeHostedEdition);
if (exchServiceId > 0)
{
StringDictionary exchSettings = ServerController.GetServiceSettings(exchServiceId);
settings["temporaryDomain"] = exchSettings["temporaryDomain"];
settings["ecpURL"] = exchSettings["ecpURL"];
}
}
// VPS
else if (String.Compare(PackageSettings.VIRTUAL_PRIVATE_SERVERS, settingsName, true) == 0)
{

View file

@ -89,7 +89,6 @@
<Content Include="esComments.asmx" />
<Content Include="esCRM.asmx" />
<Content Include="esDatabaseServers.asmx" />
<Content Include="esExchangeHostedEdition.asmx" />
<Content Include="esExchangeServer.asmx" />
<Content Include="esFiles.asmx" />
<Content Include="esFtpServers.asmx" />
@ -164,7 +163,6 @@
<Compile Include="Code\Ecommerce\TaskEventHandlers\SystemTriggersAgent.cs" />
<Compile Include="Code\Ecommerce\TriggerSystem\CommonTrigger.cs" />
<Compile Include="Code\Ecommerce\TriggerSystem\TriggerController.cs" />
<Compile Include="Code\ExchangeHostedEdition\ExchangeHostedEditionController.cs" />
<Compile Include="Code\ExchangeServer\ExchangeServerController.cs" />
<Compile Include="Code\Files\FilesController.cs" />
<Compile Include="Code\FtpServers\FtpServerController.cs" />
@ -292,10 +290,6 @@
<DependentUpon>esDatabaseServers.asmx</DependentUpon>
<SubType>Component</SubType>
</Compile>
<Compile Include="esExchangeHostedEdition.asmx.cs">
<DependentUpon>esExchangeHostedEdition.asmx</DependentUpon>
<SubType>Component</SubType>
</Compile>
<Compile Include="esExchangeServer.asmx.cs">
<DependentUpon>esExchangeServer.asmx</DependentUpon>
<SubType>Component</SubType>

View file

@ -1 +0,0 @@
<%@ WebService Language="C#" CodeBehind="esExchangeHostedEdition.asmx.cs" Class="WebsitePanel.EnterpriseServer.esExchangeHostedEdition" %>

View file

@ -1,95 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using Microsoft.Web.Services3;
using System.ComponentModel;
using WebsitePanel.Providers.ExchangeHostedEdition;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ResultObjects;
namespace WebsitePanel.EnterpriseServer
{
/// <summary>
/// Summary description for esExchangeHostedEdition
/// </summary>
[WebService(Namespace = "http://smbsaas/websitepanel/enterpriseserver")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[Policy("ServerPolicy")]
[ToolboxItem(false)]
public class esExchangeHostedEdition : WebService
{
[WebMethod]
public List<ExchangeOrganization> GetOrganizations(int packageId)
{
return ExchangeHostedEditionController.GetOrganizations(packageId);
}
[WebMethod]
public IntResult CreateExchangeOrganization(int packageId, string organizationId,
string domain, string adminName, string adminEmail, string adminPassword)
{
return ExchangeHostedEditionController.CreateOrganization(packageId, organizationId, domain, adminName, adminEmail, adminPassword);
}
[WebMethod]
public ExchangeOrganization GetExchangeOrganizationDetails(int itemId)
{
return ExchangeHostedEditionController.GetOrganizationDetails(itemId);
}
[WebMethod]
public List<ExchangeOrganizationDomain> GetExchangeOrganizationDomains(int itemId)
{
return ExchangeHostedEditionController.GetOrganizationDomains(itemId);
}
[WebMethod]
public string GetExchangeOrganizationSummary(int itemId)
{
return ExchangeHostedEditionController.GetExchangeOrganizationSummary(itemId);
}
[WebMethod]
public ResultObject SendExchangeOrganizationSummary(int itemId, string toEmail)
{
return ExchangeHostedEditionController.SendExchangeOrganizationSummary(itemId, toEmail);
}
[WebMethod]
public ResultObject AddExchangeOrganizationDomain(int itemId, string domain)
{
return ExchangeHostedEditionController.AddOrganizationDomain(itemId, domain);
}
[WebMethod]
public ResultObject DeleteExchangeOrganizationDomain(int itemId, string domain)
{
return ExchangeHostedEditionController.DeleteOrganizationDomain(itemId, domain);
}
[WebMethod]
public ResultObject UpdateExchangeOrganizationQuotas(int itemId, int mailboxesNumber, int contactsNumber, int distributionListsNumber)
{
return ExchangeHostedEditionController.UpdateOrganizationQuotas(itemId, mailboxesNumber, contactsNumber, distributionListsNumber);
}
[WebMethod]
public ResultObject UpdateExchangeOrganizationCatchAllAddress(int itemId, string catchAllEmail)
{
return ExchangeHostedEditionController.UpdateOrganizationCatchAllAddress(itemId, catchAllEmail);
}
[WebMethod]
public ResultObject UpdateExchangeOrganizationServicePlan(int itemId, int newServiceId)
{
return ExchangeHostedEditionController.UpdateOrganizationServicePlan(itemId, newServiceId);
}
[WebMethod]
public ResultObject DeleteExchangeOrganization(int itemId)
{
return ExchangeHostedEditionController.DeleteOrganization(itemId);
}
}
}

View file

@ -1,43 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WebsitePanel.Providers.ExchangeHostedEdition
{
public class ExchangeOrganization : ServiceProviderItem
{
// basic props
public string ExchangeControlPanelUrl { get; set; }
public string DistinguishedName { get; set; }
public string ServicePlan { get; set; }
public string ProgramId { get; set; }
public string OfferId { get; set; }
public string AdministratorName { get; set; }
public string AdministratorEmail { get; set; }
// domains
public ExchangeOrganizationDomain[] Domains { get; set; }
// this is real usage
public int MailboxCount { get; set; }
public int ContactCount { get; set; }
public int DistributionListCount { get; set; }
// these quotas are set in Exchange for the organization
public int MailboxCountQuota { get; set; }
public int ContactCountQuota { get; set; }
public int DistributionListCountQuota { get; set; }
// these quotas are set in the hosting plan + add-ons
public int MaxDomainsCountQuota { get; set; }
public int MaxMailboxCountQuota { get; set; }
public int MaxContactCountQuota { get; set; }
public int MaxDistributionListCountQuota { get; set; }
// summary information
public string SummaryInformation { get; set; }
[Persistent]
public string CatchAllAddress { get; set; }
}
}

View file

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WebsitePanel.Providers.ExchangeHostedEdition
{
public class ExchangeOrganizationDomain
{
public string Identity { get; set; }
public string Name { get; set; }
public bool IsDefault { get; set; }
public bool IsTemp { get; set; }
}
}

View file

@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WebsitePanel.Providers.ExchangeHostedEdition
{
public interface IExchangeHostedEdition
{
void CreateOrganization(string organizationId, string programId, string offerId,
string domain, string adminName, string adminEmail, string adminPassword);
ExchangeOrganization GetOrganizationDetails(string organizationId);
List<ExchangeOrganizationDomain> GetOrganizationDomains(string organizationId);
void AddOrganizationDomain(string organizationId, string domain);
void DeleteOrganizationDomain(string organizationId, string domain);
void UpdateOrganizationQuotas(string organizationId, int mailboxesNumber, int contactsNumber, int distributionListsNumber);
void UpdateOrganizationCatchAllAddress(string organizationId, string catchAllEmail);
void UpdateOrganizationServicePlan(string organizationId, string programId, string offerId);
void DeleteOrganization(string organizationId);
}
}

View file

@ -74,9 +74,6 @@
<Compile Include="Common\ByteOperations.cs" />
<Compile Include="Common\ErrorCodes.cs" />
<Compile Include="Common\PasswdHelper.cs" />
<Compile Include="ExchangeHostedEdition\ExchangeOrganization.cs" />
<Compile Include="ExchangeHostedEdition\ExchangeOrganizationDomain.cs" />
<Compile Include="ExchangeHostedEdition\IExchangeHostedEdition.cs" />
<Compile Include="HostedSolution\BaseReport.cs" />
<Compile Include="HostedSolution\BaseStatistics.cs" />
<Compile Include="HostedSolution\BlackBerryErrorsCodes.cs" />

View file

@ -1,574 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.4952
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
//
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
//
namespace WebsitePanel.Providers.ExchangeHostedEdition {
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Diagnostics;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="ExchangeServerHostedEditionSoap", Namespace="http://smbsaas/websitepanel/server/")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
public partial class ExchangeServerHostedEdition : Microsoft.Web.Services3.WebServicesClientProtocol {
public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue;
private System.Threading.SendOrPostCallback CreateOrganizationOperationCompleted;
private System.Threading.SendOrPostCallback GetOrganizationDomainsOperationCompleted;
private System.Threading.SendOrPostCallback AddOrganizationDomainOperationCompleted;
private System.Threading.SendOrPostCallback DeleteOrganizationDomainOperationCompleted;
private System.Threading.SendOrPostCallback GetOrganizationDetailsOperationCompleted;
private System.Threading.SendOrPostCallback UpdateOrganizationQuotasOperationCompleted;
private System.Threading.SendOrPostCallback UpdateOrganizationCatchAllAddressOperationCompleted;
private System.Threading.SendOrPostCallback UpdateOrganizationServicePlanOperationCompleted;
private System.Threading.SendOrPostCallback DeleteOrganizationOperationCompleted;
/// <remarks/>
public ExchangeServerHostedEdition() {
this.Url = "http://localhost:9003/ExchangeServerHostedEdition.asmx";
}
/// <remarks/>
public event CreateOrganizationCompletedEventHandler CreateOrganizationCompleted;
/// <remarks/>
public event GetOrganizationDomainsCompletedEventHandler GetOrganizationDomainsCompleted;
/// <remarks/>
public event AddOrganizationDomainCompletedEventHandler AddOrganizationDomainCompleted;
/// <remarks/>
public event DeleteOrganizationDomainCompletedEventHandler DeleteOrganizationDomainCompleted;
/// <remarks/>
public event GetOrganizationDetailsCompletedEventHandler GetOrganizationDetailsCompleted;
/// <remarks/>
public event UpdateOrganizationQuotasCompletedEventHandler UpdateOrganizationQuotasCompleted;
/// <remarks/>
public event UpdateOrganizationCatchAllAddressCompletedEventHandler UpdateOrganizationCatchAllAddressCompleted;
/// <remarks/>
public event UpdateOrganizationServicePlanCompletedEventHandler UpdateOrganizationServicePlanCompleted;
/// <remarks/>
public event DeleteOrganizationCompletedEventHandler DeleteOrganizationCompleted;
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateOrganization", 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 CreateOrganization(string organizationId, string programId, string offerId, string domain, string adminName, string adminEmail, string adminPassword) {
this.Invoke("CreateOrganization", new object[] {
organizationId,
programId,
offerId,
domain,
adminName,
adminEmail,
adminPassword});
}
/// <remarks/>
public System.IAsyncResult BeginCreateOrganization(string organizationId, string programId, string offerId, string domain, string adminName, string adminEmail, string adminPassword, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("CreateOrganization", new object[] {
organizationId,
programId,
offerId,
domain,
adminName,
adminEmail,
adminPassword}, callback, asyncState);
}
/// <remarks/>
public void EndCreateOrganization(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void CreateOrganizationAsync(string organizationId, string programId, string offerId, string domain, string adminName, string adminEmail, string adminPassword) {
this.CreateOrganizationAsync(organizationId, programId, offerId, domain, adminName, adminEmail, adminPassword, null);
}
/// <remarks/>
public void CreateOrganizationAsync(string organizationId, string programId, string offerId, string domain, string adminName, string adminEmail, string adminPassword, object userState) {
if ((this.CreateOrganizationOperationCompleted == null)) {
this.CreateOrganizationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateOrganizationOperationCompleted);
}
this.InvokeAsync("CreateOrganization", new object[] {
organizationId,
programId,
offerId,
domain,
adminName,
adminEmail,
adminPassword}, this.CreateOrganizationOperationCompleted, userState);
}
private void OnCreateOrganizationOperationCompleted(object arg) {
if ((this.CreateOrganizationCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.CreateOrganizationCompleted(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/GetOrganizationDomains", 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 ExchangeOrganizationDomain[] GetOrganizationDomains(string organizationId) {
object[] results = this.Invoke("GetOrganizationDomains", new object[] {
organizationId});
return ((ExchangeOrganizationDomain[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetOrganizationDomains(string organizationId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetOrganizationDomains", new object[] {
organizationId}, callback, asyncState);
}
/// <remarks/>
public ExchangeOrganizationDomain[] EndGetOrganizationDomains(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ExchangeOrganizationDomain[])(results[0]));
}
/// <remarks/>
public void GetOrganizationDomainsAsync(string organizationId) {
this.GetOrganizationDomainsAsync(organizationId, null);
}
/// <remarks/>
public void GetOrganizationDomainsAsync(string organizationId, object userState) {
if ((this.GetOrganizationDomainsOperationCompleted == null)) {
this.GetOrganizationDomainsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetOrganizationDomainsOperationCompleted);
}
this.InvokeAsync("GetOrganizationDomains", new object[] {
organizationId}, this.GetOrganizationDomainsOperationCompleted, userState);
}
private void OnGetOrganizationDomainsOperationCompleted(object arg) {
if ((this.GetOrganizationDomainsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetOrganizationDomainsCompleted(this, new GetOrganizationDomainsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/AddOrganizationDomain", 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 AddOrganizationDomain(string organizationId, string domain) {
this.Invoke("AddOrganizationDomain", new object[] {
organizationId,
domain});
}
/// <remarks/>
public System.IAsyncResult BeginAddOrganizationDomain(string organizationId, string domain, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("AddOrganizationDomain", new object[] {
organizationId,
domain}, callback, asyncState);
}
/// <remarks/>
public void EndAddOrganizationDomain(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void AddOrganizationDomainAsync(string organizationId, string domain) {
this.AddOrganizationDomainAsync(organizationId, domain, null);
}
/// <remarks/>
public void AddOrganizationDomainAsync(string organizationId, string domain, object userState) {
if ((this.AddOrganizationDomainOperationCompleted == null)) {
this.AddOrganizationDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddOrganizationDomainOperationCompleted);
}
this.InvokeAsync("AddOrganizationDomain", new object[] {
organizationId,
domain}, this.AddOrganizationDomainOperationCompleted, userState);
}
private void OnAddOrganizationDomainOperationCompleted(object arg) {
if ((this.AddOrganizationDomainCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.AddOrganizationDomainCompleted(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/DeleteOrganizationDomain", 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 DeleteOrganizationDomain(string organizationId, string domain) {
this.Invoke("DeleteOrganizationDomain", new object[] {
organizationId,
domain});
}
/// <remarks/>
public System.IAsyncResult BeginDeleteOrganizationDomain(string organizationId, string domain, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("DeleteOrganizationDomain", new object[] {
organizationId,
domain}, callback, asyncState);
}
/// <remarks/>
public void EndDeleteOrganizationDomain(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void DeleteOrganizationDomainAsync(string organizationId, string domain) {
this.DeleteOrganizationDomainAsync(organizationId, domain, null);
}
/// <remarks/>
public void DeleteOrganizationDomainAsync(string organizationId, string domain, object userState) {
if ((this.DeleteOrganizationDomainOperationCompleted == null)) {
this.DeleteOrganizationDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteOrganizationDomainOperationCompleted);
}
this.InvokeAsync("DeleteOrganizationDomain", new object[] {
organizationId,
domain}, this.DeleteOrganizationDomainOperationCompleted, userState);
}
private void OnDeleteOrganizationDomainOperationCompleted(object arg) {
if ((this.DeleteOrganizationDomainCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.DeleteOrganizationDomainCompleted(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/GetOrganizationDetails", 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 ExchangeOrganization GetOrganizationDetails(string organizationId) {
object[] results = this.Invoke("GetOrganizationDetails", new object[] {
organizationId});
return ((ExchangeOrganization)(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetOrganizationDetails(string organizationId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetOrganizationDetails", new object[] {
organizationId}, callback, asyncState);
}
/// <remarks/>
public ExchangeOrganization EndGetOrganizationDetails(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((ExchangeOrganization)(results[0]));
}
/// <remarks/>
public void GetOrganizationDetailsAsync(string organizationId) {
this.GetOrganizationDetailsAsync(organizationId, null);
}
/// <remarks/>
public void GetOrganizationDetailsAsync(string organizationId, object userState) {
if ((this.GetOrganizationDetailsOperationCompleted == null)) {
this.GetOrganizationDetailsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetOrganizationDetailsOperationCompleted);
}
this.InvokeAsync("GetOrganizationDetails", new object[] {
organizationId}, this.GetOrganizationDetailsOperationCompleted, userState);
}
private void OnGetOrganizationDetailsOperationCompleted(object arg) {
if ((this.GetOrganizationDetailsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetOrganizationDetailsCompleted(this, new GetOrganizationDetailsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UpdateOrganizationQuotas", 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 UpdateOrganizationQuotas(string organizationId, int mailboxesNumber, int contactsNumber, int distributionListsNumber) {
this.Invoke("UpdateOrganizationQuotas", new object[] {
organizationId,
mailboxesNumber,
contactsNumber,
distributionListsNumber});
}
/// <remarks/>
public System.IAsyncResult BeginUpdateOrganizationQuotas(string organizationId, int mailboxesNumber, int contactsNumber, int distributionListsNumber, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateOrganizationQuotas", new object[] {
organizationId,
mailboxesNumber,
contactsNumber,
distributionListsNumber}, callback, asyncState);
}
/// <remarks/>
public void EndUpdateOrganizationQuotas(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void UpdateOrganizationQuotasAsync(string organizationId, int mailboxesNumber, int contactsNumber, int distributionListsNumber) {
this.UpdateOrganizationQuotasAsync(organizationId, mailboxesNumber, contactsNumber, distributionListsNumber, null);
}
/// <remarks/>
public void UpdateOrganizationQuotasAsync(string organizationId, int mailboxesNumber, int contactsNumber, int distributionListsNumber, object userState) {
if ((this.UpdateOrganizationQuotasOperationCompleted == null)) {
this.UpdateOrganizationQuotasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateOrganizationQuotasOperationCompleted);
}
this.InvokeAsync("UpdateOrganizationQuotas", new object[] {
organizationId,
mailboxesNumber,
contactsNumber,
distributionListsNumber}, this.UpdateOrganizationQuotasOperationCompleted, userState);
}
private void OnUpdateOrganizationQuotasOperationCompleted(object arg) {
if ((this.UpdateOrganizationQuotasCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateOrganizationQuotasCompleted(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/UpdateOrganizationCatchAllAddress", 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 UpdateOrganizationCatchAllAddress(string organizationId, string catchAllEmail) {
this.Invoke("UpdateOrganizationCatchAllAddress", new object[] {
organizationId,
catchAllEmail});
}
/// <remarks/>
public System.IAsyncResult BeginUpdateOrganizationCatchAllAddress(string organizationId, string catchAllEmail, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateOrganizationCatchAllAddress", new object[] {
organizationId,
catchAllEmail}, callback, asyncState);
}
/// <remarks/>
public void EndUpdateOrganizationCatchAllAddress(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void UpdateOrganizationCatchAllAddressAsync(string organizationId, string catchAllEmail) {
this.UpdateOrganizationCatchAllAddressAsync(organizationId, catchAllEmail, null);
}
/// <remarks/>
public void UpdateOrganizationCatchAllAddressAsync(string organizationId, string catchAllEmail, object userState) {
if ((this.UpdateOrganizationCatchAllAddressOperationCompleted == null)) {
this.UpdateOrganizationCatchAllAddressOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateOrganizationCatchAllAddressOperationCompleted);
}
this.InvokeAsync("UpdateOrganizationCatchAllAddress", new object[] {
organizationId,
catchAllEmail}, this.UpdateOrganizationCatchAllAddressOperationCompleted, userState);
}
private void OnUpdateOrganizationCatchAllAddressOperationCompleted(object arg) {
if ((this.UpdateOrganizationCatchAllAddressCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateOrganizationCatchAllAddressCompleted(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/UpdateOrganizationServicePlan", 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 UpdateOrganizationServicePlan(string organizationId, string programId, string offerId) {
this.Invoke("UpdateOrganizationServicePlan", new object[] {
organizationId,
programId,
offerId});
}
/// <remarks/>
public System.IAsyncResult BeginUpdateOrganizationServicePlan(string organizationId, string programId, string offerId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("UpdateOrganizationServicePlan", new object[] {
organizationId,
programId,
offerId}, callback, asyncState);
}
/// <remarks/>
public void EndUpdateOrganizationServicePlan(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void UpdateOrganizationServicePlanAsync(string organizationId, string programId, string offerId) {
this.UpdateOrganizationServicePlanAsync(organizationId, programId, offerId, null);
}
/// <remarks/>
public void UpdateOrganizationServicePlanAsync(string organizationId, string programId, string offerId, object userState) {
if ((this.UpdateOrganizationServicePlanOperationCompleted == null)) {
this.UpdateOrganizationServicePlanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateOrganizationServicePlanOperationCompleted);
}
this.InvokeAsync("UpdateOrganizationServicePlan", new object[] {
organizationId,
programId,
offerId}, this.UpdateOrganizationServicePlanOperationCompleted, userState);
}
private void OnUpdateOrganizationServicePlanOperationCompleted(object arg) {
if ((this.UpdateOrganizationServicePlanCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.UpdateOrganizationServicePlanCompleted(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/DeleteOrganization", 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 DeleteOrganization(string organizationId) {
this.Invoke("DeleteOrganization", new object[] {
organizationId});
}
/// <remarks/>
public System.IAsyncResult BeginDeleteOrganization(string organizationId, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("DeleteOrganization", new object[] {
organizationId}, callback, asyncState);
}
/// <remarks/>
public void EndDeleteOrganization(System.IAsyncResult asyncResult) {
this.EndInvoke(asyncResult);
}
/// <remarks/>
public void DeleteOrganizationAsync(string organizationId) {
this.DeleteOrganizationAsync(organizationId, null);
}
/// <remarks/>
public void DeleteOrganizationAsync(string organizationId, object userState) {
if ((this.DeleteOrganizationOperationCompleted == null)) {
this.DeleteOrganizationOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteOrganizationOperationCompleted);
}
this.InvokeAsync("DeleteOrganization", new object[] {
organizationId}, this.DeleteOrganizationOperationCompleted, userState);
}
private void OnDeleteOrganizationOperationCompleted(object arg) {
if ((this.DeleteOrganizationCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.DeleteOrganizationCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateOrganizationCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationDomainsCompletedEventHandler(object sender, GetOrganizationDomainsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationDomainsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetOrganizationDomainsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ExchangeOrganizationDomain[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((ExchangeOrganizationDomain[])(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void AddOrganizationDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteOrganizationDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetOrganizationDetailsCompletedEventHandler(object sender, GetOrganizationDetailsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetOrganizationDetailsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetOrganizationDetailsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public ExchangeOrganization Result {
get {
this.RaiseExceptionIfNecessary();
return ((ExchangeOrganization)(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateOrganizationQuotasCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateOrganizationCatchAllAddressCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateOrganizationServicePlanCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteOrganizationCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
}

View file

@ -78,7 +78,6 @@
<Compile Include="CRMProxy.cs" />
<Compile Include="DatabaseServerProxy.cs" />
<Compile Include="DnsServerProxy.cs" />
<Compile Include="ExchangeServerHostedEditionProxy.cs" />
<Compile Include="ExchangeServerProxy.cs" />
<Compile Include="FtpServerProxy.cs" />
<Compile Include="HostedSharePointServerProxy.cs" />

View file

@ -93,8 +93,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail
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}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.ExchangeHostedEdition", "WebsitePanel.Providers.ExchangeHostedEdition\WebsitePanel.Providers.ExchangeHostedEdition.csproj", "{5D30E0E3-7AAD-4BE1-8043-3F3E9994D321}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail.SmarterMail7", "WebsitePanel.Providers.Mail.SmarterMail7\WebsitePanel.Providers.Mail.SmarterMail7.csproj", "{FB773A2C-1CD3-4D76-9C4F-B6B7EB9E479C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.VirtualizationForPC.HyperVForPC", "WebsitePanel.Providers.Virtualization.HyperVForPC\WebsitePanel.Providers.VirtualizationForPC.HyperVForPC.csproj", "{64BEEB10-7F9F-4860-B2FF-84CDA02766B3}"
@ -267,10 +265,6 @@ Global
{8F644D50-D602-4AD3-8EB0-CA3C3676B18D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F644D50-D602-4AD3-8EB0-CA3C3676B18D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F644D50-D602-4AD3-8EB0-CA3C3676B18D}.Release|Any CPU.Build.0 = Release|Any CPU
{5D30E0E3-7AAD-4BE1-8043-3F3E9994D321}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5D30E0E3-7AAD-4BE1-8043-3F3E9994D321}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5D30E0E3-7AAD-4BE1-8043-3F3E9994D321}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5D30E0E3-7AAD-4BE1-8043-3F3E9994D321}.Release|Any CPU.Build.0 = Release|Any CPU
{FB773A2C-1CD3-4D76-9C4F-B6B7EB9E479C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB773A2C-1CD3-4D76-9C4F-B6B7EB9E479C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB773A2C-1CD3-4D76-9C4F-B6B7EB9E479C}.Release|Any CPU.ActiveCfg = Release|Any CPU

View file

@ -1 +0,0 @@
<%@ WebService Language="C#" CodeBehind="ExchangeServerHostedEdition.asmx.cs" Class="WebsitePanel.Server.ExchangeServerHostedEdition" %>

View file

@ -1,201 +0,0 @@
// 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.Services;
using WebsitePanel.Providers;
using WebsitePanel.Providers.ExchangeHostedEdition;
using Microsoft.Web.Services3;
using System.Web.Services.Protocols;
using WebsitePanel.Server.Utils;
namespace WebsitePanel.Server
{
/// <summary>
/// Summary description for ExchangeHostedEdition
/// </summary>
[WebService(Namespace = "http://smbsaas/websitepanel/server/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[Policy("ServerPolicy")]
public class ExchangeServerHostedEdition : HostingServiceProviderWebService, IExchangeHostedEdition
{
private IExchangeHostedEdition ExchangeServer
{
get { return (IExchangeHostedEdition)Provider; }
}
[WebMethod, SoapHeader("settings")]
public void CreateOrganization(string organizationId, string programId, string offerId, string domain,
string adminName, string adminEmail, string adminPassword)
{
try
{
Log.WriteStart("'{0}' CreateOrganization", ProviderSettings.ProviderName);
ExchangeServer.CreateOrganization(organizationId, programId, offerId, domain, adminName, adminEmail, adminPassword);
Log.WriteEnd("'{0}' CreateOrganization", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' CreateOrganization", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public List<ExchangeOrganizationDomain> GetOrganizationDomains(string organizationId)
{
try
{
Log.WriteStart("'{0}' GetOrganizationDomains", ProviderSettings.ProviderName);
List<ExchangeOrganizationDomain> result = ExchangeServer.GetOrganizationDomains(organizationId);
Log.WriteEnd("'{0}' GetOrganizationDomains", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetOrganizationDomains", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void AddOrganizationDomain(string organizationId, string domain)
{
try
{
Log.WriteStart("'{0}' AddOrganizationDomain", ProviderSettings.ProviderName);
ExchangeServer.AddOrganizationDomain(organizationId, domain);
Log.WriteEnd("'{0}' AddOrganizationDomain", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' AddOrganizationDomain", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void DeleteOrganizationDomain(string organizationId, string domain)
{
try
{
Log.WriteStart("'{0}' DeleteOrganizationDomain", ProviderSettings.ProviderName);
ExchangeServer.DeleteOrganizationDomain(organizationId, domain);
Log.WriteEnd("'{0}' DeleteOrganizationDomain", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteOrganizationDomain", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public ExchangeOrganization GetOrganizationDetails(string organizationId)
{
try
{
Log.WriteStart("'{0}' GetOrganizationDetails", ProviderSettings.ProviderName);
ExchangeOrganization result = ExchangeServer.GetOrganizationDetails(organizationId);
Log.WriteEnd("'{0}' GetOrganizationDetails", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetOrganizationDetails", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void UpdateOrganizationQuotas(string organizationId, int mailboxesNumber, int contactsNumber, int distributionListsNumber)
{
try
{
Log.WriteStart("'{0}' UpdateOrganizationQuotas", ProviderSettings.ProviderName);
ExchangeServer.UpdateOrganizationQuotas(organizationId, mailboxesNumber, contactsNumber, distributionListsNumber);
Log.WriteEnd("'{0}' UpdateOrganizationQuotas", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' UpdateOrganizationQuotas", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void UpdateOrganizationCatchAllAddress(string organizationId, string catchAllEmail)
{
try
{
Log.WriteStart("'{0}' UpdateOrganizationCatchAllAddress", ProviderSettings.ProviderName);
ExchangeServer.UpdateOrganizationCatchAllAddress(organizationId, catchAllEmail);
Log.WriteEnd("'{0}' UpdateOrganizationCatchAllAddress", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' UpdateOrganizationCatchAllAddress", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void UpdateOrganizationServicePlan(string organizationId, string programId, string offerId)
{
try
{
Log.WriteStart("'{0}' UpdateOeganizationServicePlan", ProviderSettings.ProviderName);
ExchangeServer.UpdateOrganizationServicePlan(organizationId, programId, offerId);
Log.WriteEnd("'{0}' UpdateOeganizationServicePlan", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' UpdateOeganizationServicePlan", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public void DeleteOrganization(string organizationId)
{
try
{
Log.WriteStart("'{0}' DeleteOrganization", ProviderSettings.ProviderName);
ExchangeServer.DeleteOrganization(organizationId);
Log.WriteEnd("'{0}' DeleteOrganization", ProviderSettings.ProviderName);
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' DeleteOrganization", ProviderSettings.ProviderName), ex);
throw;
}
}
}
}

View file

@ -68,7 +68,6 @@
<Content Include="AutoDiscovery.asmx" />
<Content Include="BlackBerry.asmx" />
<EmbeddedResource Include="Images\logo.png" />
<Content Include="ExchangeServerHostedEdition.asmx" />
<Content Include="OCSEdgeServer.asmx" />
<Content Include="OCSServer.asmx" />
<Content Include="CRM.asmx" />
@ -109,10 +108,6 @@
<Compile Include="Code\ServerConfiguration.cs" />
<Compile Include="Code\ServerUsernameTokenManager.cs" />
<Compile Include="Code\UsernameAssertion.cs" />
<Compile Include="ExchangeServerHostedEdition.asmx.cs">
<DependentUpon>ExchangeServerHostedEdition.asmx</DependentUpon>
<SubType>Component</SubType>
</Compile>
<Compile Include="OCSEdgeServer.asmx.cs">
<DependentUpon>OCSEdgeServer.asmx</DependentUpon>
<SubType>Component</SubType>

View file

@ -68,7 +68,6 @@
</MenuItem>
<MenuItem pageID="SpaceVPS" resourceGroup="VPS"/>
<MenuItem pageID="SpaceVPSForPC" resourceGroup="VPSForPC"/>
<MenuItem pageID="SpaceExchangeHostedEdition" resourceGroup="ExchangeHostedEdition"/>
<MenuItem pageID="SpaceExchangeServer" resourceGroup="Hosted Organizations"/>
<MenuItem pageID="SpaceSharedSSL" resourceGroup="OS" quota="Web.SharedSSL"/>
<MenuItem pageID="SpaceAdvancedStatistics" resourceGroup="Statistics"/>
@ -121,7 +120,6 @@
</Icon>
<Icon pageID="SpaceVPS" resourceGroup="VPS" imageUrl="images/vps/servers_48.png" />
<Icon pageID="SpaceVPSForPC" resourceGroup="VPSForPC" imageUrl="images/vps/icon-home-botbar-cloud.png" />
<Icon pageID="SpaceExchangeHostedEdition" resourceGroup="ExchangeHostedEdition" imageUrl="icons/enterprise.png"/>
<Icon pageID="SpaceExchangeServer" resourceGroup="Hosted Organizations" imageUrl="icons/enterprise.png"/>
<Icon pageID="SpaceWebApplicationsGallery" resourceGroup="Web" quota="Web.WebAppGallery" imageUrl="icons/dvd_disc_48.png"/>
<Icon pageID="SpaceApplicationsInstaller" resourceGroup="OS" quota="OS.AppInstaller" imageUrl="icons/dvd_disc_48.png"/>

View file

@ -580,17 +580,4 @@
</Controls>
</ModuleDefinition>
<ModuleDefinition id="ExchangeHostedEdition">
<Controls>
<Control key="" src="WebsitePanel/ExchangeHostedEdition/OrganizationDetails.ascx" title="HostedExchangeOrganizationDetails" type="View" />
<Control key="create_org" src="WebsitePanel/ExchangeHostedEdition/CreateOrganization.ascx" title="HostedExchangeCreateOrganization" type="View" />
<Control key="update_org_quotas" src="WebsitePanel/ExchangeHostedEdition/UpdateOrganizationQuotas.ascx" title="HostedExchangeUpdateOrganizationQuotas" type="View" />
<Control key="update_org_catchall" src="WebsitePanel/ExchangeHostedEdition/UpdateOrganizationCatchAll.ascx" title="HostedExchangeUpdateOrganizationCatchAll" type="View" />
<Control key="update_org_plan" src="WebsitePanel/ExchangeHostedEdition/UpdateOrganizationServicePlan.ascx" title="HostedExchangeUpdateOrganizationServicePlan" type="View" />
<Control key="add_org_domain" src="WebsitePanel/ExchangeHostedEdition/AddOrganizationDomain.ascx" title="HostedExchangeAddOrganizationDomain" type="View" />
<Control key="delete_org" src="WebsitePanel/ExchangeHostedEdition/DeleteOrganization.ascx" title="HostedExchangeDeleteOrganization" type="View" />
</Controls>
</ModuleDefinition>
</ModuleDefinitions>

View file

@ -557,16 +557,4 @@
</Pages>
</Page>
<Page name="SpaceExchangeHostedEdition" roles="Administrator,Reseller,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="ExchangeHostedEdition" title="ExchangeHostedEdition" icon="enterprise.png">
</Module>
</Content>
</Page>
</Pages>

View file

@ -735,9 +735,6 @@
<data name="ModuleTitle.WebSitesAllocateIPAddresses" xml:space="preserve">
<value>Allocate Web Site IP Addresses</value>
</data>
<data name="ModuleTitle.ExchangeHostedEdition" xml:space="preserve">
<value>Exchange Hosting Mode</value>
</data>
<data name="ModuleTitle.HostedExchangeAddOrganizationDomain" xml:space="preserve">
<value>Add Organization Domain</value>
</data>

View file

@ -453,12 +453,6 @@
<data name="PageTitle.SpaceWeb" xml:space="preserve">
<value>{user} - {space} - Web</value>
</data>
<data name="PageName.SpaceExchangeHostedEdition" xml:space="preserve">
<value>Exchange Hosting Mode</value>
</data>
<data name="PageTitle.SpaceExchangeHostedEdition" xml:space="preserve">
<value>{user} - {space} - Exchange Hosting Mode</value>
</data>
<data name="PageName.SpaceVPSForPC" xml:space="preserve">
<value>Virtual Private Cloud</value>
</data>

View file

@ -4822,138 +4822,12 @@
<data name="Quota.Web.SSL" xml:space="preserve">
<value>SSL</value>
</data>
<data name="Quota.ExchangeHostedEdition.Contacts" xml:space="preserve">
<value>Contacts</value>
</data>
<data name="Quota.ExchangeHostedEdition.DistributionLists" xml:space="preserve">
<value>Distribution Lists</value>
</data>
<data name="Quota.ExchangeHostedEdition.Domains" xml:space="preserve">
<value>Domains</value>
</data>
<data name="Quota.ExchangeHostedEdition.Mailboxes" xml:space="preserve">
<value>Mailboxes</value>
</data>
<data name="ReportResourceGroup.ExchangeHostedEdition" xml:space="preserve">
<value>Exchange 2010 Hosting Mode</value>
</data>
<data name="ResourceGroup.ExchangeHostedEdition" xml:space="preserve">
<value>Exchange Hosting Mode</value>
</data>
<data name="Error.EXCHANGE_HOSTED_CREATE_ORGANIZATION" xml:space="preserve">
<value>Error creating Exchange organization</value>
</data>
<data name="Error.EXCHANGE_HOSTED_DELETE_ORGANIZATION" xml:space="preserve">
<value>Exchange organization cannot be deleted</value>
</data>
<data name="Error.EXCHANGE_HOSTED_SEND_SUMMARY" xml:space="preserve">
<value>Error sending Exchange organization summary information</value>
</data>
<data name="ErrorDescription.EXCHANGE_HOSTED_CREATE_ORGANIZATION" xml:space="preserve">
<value>Please contact your hosting provider.</value>
</data>
<data name="ErrorDescription.EXCHANGE_HOSTED_SEND_SUMMARY" xml:space="preserve">
<value>Please contact your hosting provider.</value>
</data>
<data name="ServiceItemType.ExchangeOrganization" xml:space="preserve">
<value>Exchange Organization</value>
</data>
<data name="Success.EXCHANGE_HOSTED_SEND_SUMMARY" xml:space="preserve">
<value>Exchange organization summary information has been sent</value>
</data>
<data name="Warning.EXCHANGE_HOSTED_CONFIRM_DELETE_ORGANIZATION" xml:space="preserve">
<value>You have to tick a checkbox to confirm organization deletion</value>
</data>
<data name="Error.EXCHANGE_HOSTED_ADD_DOMAIN" xml:space="preserve">
<value>Organization domain cannot be added</value>
</data>
<data name="Error.EXCHANGE_HOSTED_CHANGE_QUOTAS" xml:space="preserve">
<value>Organization quotas cannot be changed</value>
</data>
<data name="Error.EXCHANGE_HOSTED_CHANGE_SERVICE_PLAN" xml:space="preserve">
<value>Organization Service Plan cannot be changed</value>
</data>
<data name="Error.EXCHANGE_HOSTED_GET_DOMAINS" xml:space="preserve">
<value>Error reading Exchange organization domains</value>
</data>
<data name="Error.EXCHANGE_HOSTED_GET_ORGANIZATION" xml:space="preserve">
<value>Organization details cannot be loaded.</value>
</data>
<data name="ErrorDescription.EXCHANGE_HOSTED_ADD_DOMAIN" xml:space="preserve">
<value>Please contact your hosting provider.</value>
</data>
<data name="ErrorDescription.EXCHANGE_HOSTED_CHANGE_QUOTAS" xml:space="preserve">
<value>Please contact your hosting provider.</value>
</data>
<data name="ErrorDescription.EXCHANGE_HOSTED_CHANGE_SERVICE_PLAN" xml:space="preserve">
<value>Please contact your hosting provider.</value>
</data>
<data name="ErrorDescription.EXCHANGE_HOSTED_GET_ORGANIZATION" xml:space="preserve">
<value>Please contact your hosting provider.</value>
</data>
<data name="Error.EXCHANGE_HOSTED_DELETE_DOMAIN" xml:space="preserve">
<value>Organization domain cannot be deleted</value>
</data>
<data name="ExchangeHostedEdition.AddDomainAlreadyUsedError" xml:space="preserve">
<value>Specified domain name already added into organization.</value>
</data>
<data name="ExchangeHostedEdition.AddDomainError" xml:space="preserve">
<value>Error adding organization domain.</value>
</data>
<data name="ExchangeHostedEdition.AddDomainExistsError" xml:space="preserve">
<value>Specified domain name already exists.</value>
</data>
<data name="ExchangeHostedEdition.AddDomainQuotaExceededError" xml:space="preserve">
<value>Maximum domains quota has been reached.</value>
</data>
<data name="ExchangeHostedEdition.CreateOrganizationError" xml:space="preserve">
<value>Error creating organization. See system logs for detailed messages.</value>
</data>
<data name="ExchangeHostedEdition.DeleteDomainError" xml:space="preserve">
<value>Error deleting organization domain.</value>
</data>
<data name="ExchangeHostedEdition.DeleteOrganizationError" xml:space="preserve">
<value>Error deleting organization. See system logs for detailed messages.</value>
</data>
<data name="ExchangeHostedEdition.ExchangeServiceNotEnabledError" xml:space="preserve">
<value>Exchange Hosting Mode service is not enabled for the hosting space.</value>
</data>
<data name="ExchangeHostedEdition.GeneralError" xml:space="preserve">
<value>General module error.</value>
</data>
<data name="ExchangeHostedEdition.OfferIdIsNotSetError" xml:space="preserve">
<value>Offer ID is not specified on Exchange service settings.</value>
</data>
<data name="ExchangeHostedEdition.OrganizationNotFoundError" xml:space="preserve">
<value>Organization not found.</value>
</data>
<data name="ExchangeHostedEdition.ProgramIdIsNotSetError" xml:space="preserve">
<value>Program ID is not specified on Exchange service settings.</value>
</data>
<data name="ExchangeHostedEdition.SendOrganizationSummaryError" xml:space="preserve">
<value>Error sending organization summary information.</value>
</data>
<data name="ExchangeHostedEdition.SendOrganizationTemplateNotSetError" xml:space="preserve">
<value>Organization summary information template is not set.</value>
</data>
<data name="ExchangeHostedEdition.UpdateCatchAllError" xml:space="preserve">
<value>Error updating catch-all account.</value>
</data>
<data name="ExchangeHostedEdition.UpdateQuotasError" xml:space="preserve">
<value>Error updating organization quotas.</value>
</data>
<data name="ExchangeHostedEdition.UpdateQuotasWrongQuotaError" xml:space="preserve">
<value>One of the specified quotas exceed maximum value allowed.</value>
</data>
<data name="ExchangeHostedEdition.UpdateServicePlanError" xml:space="preserve">
<value>Error changing organization service plan. See system logs for detailed messages.</value>
</data>
<data name="Quota.Mail.DisableSizeEdit" xml:space="preserve">
<value>Disable Mailbox Size Edit</value>
</data>
<data name="AuditLogSource.ExchangeHostedEdition" xml:space="preserve">
<value>Exchange Hosting Mode</value>
</data>
<data name="Text.Unlimited" xml:space="preserve">
<value>Unlimited</value>
</data>

View file

@ -141,9 +141,6 @@
<data name="lnkVps.Text" xml:space="preserve">
<value>Virtual Private Servers</value>
</data>
<data name="lnkExchangeHostedEdition.Text" xml:space="preserve">
<value>Exchange Hosting Mode</value>
</data>
<data name="lnkVpsForPC.Text" xml:space="preserve">
<value>Virtual Private Servers for Private Cloud</value>
</data>

View file

@ -141,7 +141,4 @@
<data name="lnkVpsSummaryLetter.Text" xml:space="preserve">
<value>VPS Summary Letter</value>
</data>
<data name="lnkExchangeHostedEditionOrganizationSummary.Text" xml:space="preserve">
<value>Exchange Hosting Mode Organization Summary</value>
</data>
</root>

View file

@ -150,7 +150,4 @@
<data name="lnkWebPolicy.Text" xml:space="preserve">
<value>WEB Policy</value>
</data>
<data name="lnkExchangeHostedEditionPolicy.Text" xml:space="preserve">
<value>Exchange Hosting Mode Policy</value>
</data>
</root>

View file

@ -206,11 +206,6 @@ namespace WebsitePanel.Portal
get { return GetCachedProxy<esExchangeServer>(); }
}
public esExchangeHostedEdition ExchangeHostedEdition
{
get { return GetCachedProxy<esExchangeHostedEdition>(); }
}
protected ES()
{
}

View file

@ -1,30 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AddOrganizationDomain.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeHostedEdition.AddOrganizationDomain" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<asp:ValidationSummary ID="validationErrors" runat="server" ValidationGroup="AddDomain" DisplayMode="List" ShowMessageBox="true" ShowSummary="false" />
<table>
<tr>
<td><asp:Localize ID="locDomain" runat="server" meta:resourcekey="locDomain">Domain:</asp:Localize></td>
<td>
<asp:TextBox ID="domain" runat="server" Width="200"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireDomain" runat="server" meta:resourcekey="requireDomain" ControlToValidate="domain" ValidationGroup="AddDomain"
Text="*" ErrorMessage="Specify organization domain" Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator id="requireCorrectDomain" runat="server" ValidationExpression="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.){1,10}[a-zA-Z]{2,6}$"
ErrorMessage="Enter correct domain name" ControlToValidate="domain"
Display="Dynamic" meta:resourcekey="requireCorrectDomain" ValidationGroup="AddDomain">*</asp:RegularExpressionValidator>
</td>
</tr>
</table>
</div>
<div class="FormFooter">
<asp:Button ID="update" runat="server" meta:resourcekey="update" Text="Update"
CssClass="Button1" onclick="update_Click" ValidationGroup="AddDomain" />
<asp:Button ID="cancel" runat="server" meta:resourcekey="cancel" Text="Cancel"
CssClass="Button1" CausesValidation="false" onclick="cancel_Click" />
</div>

View file

@ -1,54 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class AddOrganizationDomain : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void update_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
try
{
// call service
ResultObject result = ES.Services.ExchangeHostedEdition.AddExchangeOrganizationDomain(PanelRequest.ItemID, domain.Text.Trim());
// check results
if (result.IsSuccess)
{
// navigate to details
RedirectBack();
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_ADD_DOMAIN", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_ADD_DOMAIN", ex);
}
}
protected void cancel_Click(object sender, EventArgs e)
{
RedirectBack();
}
private void RedirectBack()
{
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString(), "ItemID=" + PanelRequest.ItemID.ToString()));
}
}
}

View file

@ -1,96 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class AddOrganizationDomain {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <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>
/// validationErrors 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.ValidationSummary validationErrors;
/// <summary>
/// locDomain 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 locDomain;
/// <summary>
/// domain 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 domain;
/// <summary>
/// requireDomain 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 requireDomain;
/// <summary>
/// requireCorrectDomain 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.RegularExpressionValidator requireCorrectDomain;
/// <summary>
/// update 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 update;
/// <summary>
/// cancel 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 cancel;
}
}

View file

@ -1,144 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="locDomain.Text" xml:space="preserve">
<value>Domain:</value>
</data>
<data name="requireCorrectDomain.ErrorMessage" xml:space="preserve">
<value>Enter correct domain name in the form "mydomain.com" or "sub.mydomain.com"</value>
</data>
<data name="requireCorrectDomain.Text" xml:space="preserve">
<value>!</value>
</data>
<data name="requireDomain.ErrorMessage" xml:space="preserve">
<value>Select domain</value>
</data>
<data name="requireDomain.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="update.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Adding organization domain...');</value>
</data>
<data name="update.Text" xml:space="preserve">
<value>Update</value>
</data>
</root>

View file

@ -1,171 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="createOrganization.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Creating Exchange organization...');</value>
</data>
<data name="createOrganization.Text" xml:space="preserve">
<value>Create Organization</value>
</data>
<data name="locAdministratorEmail.Text" xml:space="preserve">
<value>Administrator e-mail:</value>
</data>
<data name="locAdministratorName.Text" xml:space="preserve">
<value>Administrator name:</value>
</data>
<data name="locAdministratorPassword.Text" xml:space="preserve">
<value>Administrator password:</value>
</data>
<data name="locOrganizationName.Text" xml:space="preserve">
<value>Organization name:</value>
</data>
<data name="manageDomainsLink.Text" xml:space="preserve">
<value>Manage domains</value>
</data>
<data name="requireAdministratorEmail.ErrorMessage" xml:space="preserve">
<value>Enter administrator e-mail address</value>
</data>
<data name="requireAdministratorEmail.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="requireAdministratorName.ErrorMessage" xml:space="preserve">
<value>Enter administrator display name</value>
</data>
<data name="requireAdministratorName.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="requireCorrectDomain.ErrorMessage" xml:space="preserve">
<value>Enter correct domain name in the form "mydomain.com" or "sub.mydomain.com"</value>
</data>
<data name="requireCorrectDomain.Text" xml:space="preserve">
<value>!</value>
</data>
<data name="requireDomain.ErrorMessage" xml:space="preserve">
<value>Specify organization domain</value>
</data>
<data name="requireDomain.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="requireOrganizationName.ErrorMessage" xml:space="preserve">
<value>Enter organization name</value>
</data>
<data name="requireOrganizationName.Text" xml:space="preserve">
<value>*</value>
</data>
</root>

View file

@ -1,135 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="confirmDelete.Text" xml:space="preserve">
<value>I confirm deletion of this organization and all its contents</value>
</data>
<data name="delete.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Deleting Exchange organization...');</value>
</data>
<data name="delete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="locWarningMessage.Text" xml:space="preserve">
<value>&lt;p&gt;&lt;b&gt;All organization user accounts, contacts, distribution lists and public folders will be deleted.&lt;/b&gt;&lt;/p&gt;</value>
</data>
</root>

View file

@ -1,234 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnAddDomain.Text" xml:space="preserve">
<value>Add Domain</value>
</data>
<data name="catchAllNotSet.Text" xml:space="preserve">
<value>(not set)</value>
</data>
<data name="changeServicePlan.Text" xml:space="preserve">
<value>Change Service Plan</value>
</data>
<data name="cmdDelete.OnClientClick" xml:space="preserve">
<value>if(!confirm('Are you sure you want to remove selected domain?')) return false; else ShowProgressDialog('Deleting domain...');</value>
</data>
<data name="cmdDelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="deleteOrganization.Text" xml:space="preserve">
<value>Delete Organization</value>
</data>
<data name="domainsQuota.Text" xml:space="preserve">
<value>{0} of {1}</value>
</data>
<data name="gvDomains.Empty" xml:space="preserve">
<value>There are no domains allowed for this organization. Click "Add Domain" button to add domain.</value>
</data>
<data name="gvDomainsIsDefault.Header" xml:space="preserve">
<value>Default</value>
</data>
<data name="gvDomainsIsTemp.Header" xml:space="preserve">
<value>Temporary</value>
</data>
<data name="gvDomainsName.Header" xml:space="preserve">
<value>Domain</value>
</data>
<data name="lblAdminsWarning.Text" xml:space="preserve">
<value>This block is visible to system administrators only.</value>
</data>
<data name="locAdministratorEmail.Text" xml:space="preserve">
<value>Administrator e-mail:</value>
</data>
<data name="locAdministratorName.Text" xml:space="preserve">
<value>Administrator name:</value>
</data>
<data name="locCatchAll.Text" xml:space="preserve">
<value>Catch-all</value>
</data>
<data name="locCatchAllAddress.Text" xml:space="preserve">
<value>Catch-all address:</value>
</data>
<data name="locContacts.Text" xml:space="preserve">
<value>Contacts:</value>
</data>
<data name="locDistributionLists.Text" xml:space="preserve">
<value>Distribution Lists:</value>
</data>
<data name="locDomains.Text" xml:space="preserve">
<value>Domains</value>
</data>
<data name="locDomainsQuota.Text" xml:space="preserve">
<value>Total domains used:</value>
</data>
<data name="locEcpURL.Text" xml:space="preserve">
<value>Exchange Control Panel:</value>
</data>
<data name="locMailboxes.Text" xml:space="preserve">
<value>Mailboxes:</value>
</data>
<data name="locOfferID.Text" xml:space="preserve">
<value>Offer ID:</value>
</data>
<data name="locOrganizationDetails.Text" xml:space="preserve">
<value>Organization Details</value>
</data>
<data name="locOrganizationName.Text" xml:space="preserve">
<value>Organization name:</value>
</data>
<data name="locProgramID.Text" xml:space="preserve">
<value>Program ID:</value>
</data>
<data name="locQuotas.Text" xml:space="preserve">
<value>Quotas</value>
</data>
<data name="locSendTo.Text" xml:space="preserve">
<value>Send to e-mail:</value>
</data>
<data name="locService.Text" xml:space="preserve">
<value>Service:</value>
</data>
<data name="locServicePlan.Text" xml:space="preserve">
<value>Service Plan</value>
</data>
<data name="locSetupInstructions.Text" xml:space="preserve">
<value>Setup Instructions</value>
</data>
<data name="quota.FormatText" xml:space="preserve">
<value>{0} of {1} (max {2})</value>
</data>
<data name="requireSendTo.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="sendSetupInstructions.Text" xml:space="preserve">
<value>Send</value>
</data>
<data name="setCatchAll.Text" xml:space="preserve">
<value>Set Catch-all</value>
</data>
<data name="summaryTemplateNotSet.Text" xml:space="preserve">
<value>(summary information template is not set)</value>
</data>
<data name="unlimited.Text" xml:space="preserve">
<value>Unlimited</value>
</data>
<data name="updateQuotas.Text" xml:space="preserve">
<value>Update Quotas</value>
</data>
</root>

View file

@ -1,159 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="catchAllModeDisabled.Text" xml:space="preserve">
<value>Disable catch-all</value>
</data>
<data name="catchAllModeEnabled.Text" xml:space="preserve">
<value>Enable catch-all</value>
</data>
<data name="locCatchAllAddress.Text" xml:space="preserve">
<value>Catch-all mailbox:</value>
</data>
<data name="requireCatchAllAddress.ErrorMessage" xml:space="preserve">
<value>Enter catch-all e-mail address</value>
</data>
<data name="requireCatchAllAddress.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="requireCorrectEmail.ErrorMessage" xml:space="preserve">
<value>Enter correct e-mail address</value>
</data>
<data name="requireCorrectEmail.Text" xml:space="preserve">
<value>!</value>
</data>
<data name="requireDomain.ErrorMessage" xml:space="preserve">
<value>Select domain</value>
</data>
<data name="requireDomain.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="SelectDomain.Text" xml:space="preserve">
<value>&lt;Select domain&gt;</value>
</data>
<data name="update.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Updating organization Catch-all address...');</value>
</data>
<data name="update.Text" xml:space="preserve">
<value>Update</value>
</data>
</root>

View file

@ -1,180 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="cancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="locContacts.Text" xml:space="preserve">
<value>Contacts:</value>
</data>
<data name="locDistributionLists.Text" xml:space="preserve">
<value>Distribution Lists:</value>
</data>
<data name="locMailboxes.Text" xml:space="preserve">
<value>Mailboxes:</value>
</data>
<data name="maxQuota.Text" xml:space="preserve">
<value>(max {0})</value>
</data>
<data name="rangeContacts.ErrorMessage" xml:space="preserve">
<value>Specify correct number</value>
</data>
<data name="rangeContacts.Text" xml:space="preserve">
<value>!</value>
</data>
<data name="rangeDistributionLists.ErrorMessage" xml:space="preserve">
<value>Specify correct number</value>
</data>
<data name="rangeDistributionLists.Text" xml:space="preserve">
<value>!</value>
</data>
<data name="rangeMailboxes.ErrorMessage" xml:space="preserve">
<value>Specify correct number</value>
</data>
<data name="rangeMailboxes.Text" xml:space="preserve">
<value>!</value>
</data>
<data name="requireContacts.ErrorMessage" xml:space="preserve">
<value>Enter contacts quota</value>
</data>
<data name="requireContacts.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="requireDistributionLists.ErrorMessage" xml:space="preserve">
<value>Enter distribution lists quota</value>
</data>
<data name="requireDistributionLists.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="requireMailboxes.ErrorMessage" xml:space="preserve">
<value>Enter mailboxes quota</value>
</data>
<data name="requireMailboxes.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="unlimited.Text" xml:space="preserve">
<value>Unlimited</value>
</data>
<data name="update.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Updating organization quotas...');</value>
</data>
<data name="update.Text" xml:space="preserve">
<value>Update</value>
</data>
</root>

View file

@ -1,153 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="apply.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Updating organization service plan...');</value>
</data>
<data name="apply.Text" xml:space="preserve">
<value>Apply</value>
</data>
<data name="cancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="locCurrentServicePlan.Text" xml:space="preserve">
<value>Current Service Plan</value>
</data>
<data name="locNewServicePlan.Text" xml:space="preserve">
<value>New Service Plan</value>
</data>
<data name="locOfferID.Text" xml:space="preserve">
<value>Offer ID:</value>
</data>
<data name="locProgramID.Text" xml:space="preserve">
<value>Program ID:</value>
</data>
<data name="locService.Text" xml:space="preserve">
<value>Service:</value>
</data>
<data name="requireServices.ErrorMessage" xml:space="preserve">
<value>Select new service</value>
</data>
<data name="requireServices.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="SelectService.Text" xml:space="preserve">
<value>&lt;Select service&gt;</value>
</data>
</root>

View file

@ -1,73 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CreateOrganization.ascx.cs"
Inherits="WebsitePanel.Portal.ExchangeHostedEdition.CreateOrganization" %>
<%@ Register Src="../UserControls/PasswordControl.ascx" TagName="PasswordControl"
TagPrefix="wsp" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
<asp:Panel runat="server" ID="CreateExchangeOrganizationPanel" DefaultButton="createOrganization">
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<asp:ValidationSummary ID="validationErrors" runat="server" ValidationGroup="CreateOrg"
DisplayMode="List" ShowMessageBox="true" ShowSummary="false" />
<table cellpadding="2">
<tr>
<td style="width: 150px;">
<asp:Localize ID="locOrganizationName" runat="server" meta:resourcekey="locOrganizationName">Organization name:</asp:Localize>
</td>
<td>
<asp:TextBox ID="organizationName" runat="server" Width="200"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireOrganizationName" runat="server" meta:resourcekey="requireOrganizationName"
ControlToValidate="organizationName" ValidationGroup="CreateOrg" Text="*" ErrorMessage="Enter organization name"
Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locAdministratorName" runat="server" meta:resourcekey="locAdministratorName">Administrator name:</asp:Localize>
</td>
<td>
<asp:TextBox ID="administratorName" runat="server" Width="200"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireAdministratorName" runat="server" meta:resourcekey="requireAdministratorName"
ControlToValidate="administratorName" ValidationGroup="CreateOrg" Text="*" ErrorMessage="Enter administrator name"
Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locAdministratorEmail" runat="server" meta:resourcekey="locAdministratorEmail">Administrator e-mail:</asp:Localize>
</td>
<td>
<asp:TextBox ID="administratorEmail" runat="server" Width="100"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireAdministratorEmail" runat="server" meta:resourcekey="requireAdministratorEmail"
ControlToValidate="administratorEmail" ValidationGroup="CreateOrg" Text="*" ErrorMessage="Enter administrator e-mail address"
Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
@
<asp:TextBox ID="domain" runat="server" Width="200"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireDomain" runat="server" meta:resourcekey="requireDomain"
ControlToValidate="domain" ValidationGroup="CreateOrg" Text="*" ErrorMessage="Specify organization domain"
Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="requireCorrectDomain" runat="server" ValidationExpression="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.){1,10}[a-zA-Z]{2,6}$"
ErrorMessage="Enter correct domain name" ControlToValidate="domain" Display="Dynamic"
meta:resourcekey="requireCorrectDomain" ValidationGroup="CreateOrg">*</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td valign="top">
<asp:Localize ID="locAdministratorPassword" runat="server" meta:resourcekey="locAdministratorPassword">Administrator password:</asp:Localize>
</td>
<td valign="top">
<wsp:PasswordControl id="administratorPassword" runat="server" ValidationGroup="CreateOrg">
</wsp:PasswordControl>
</td>
</tr>
</table>
</div>
<div class="FormFooter">
<asp:Button ID="createOrganization" runat="server" meta:resourcekey="createOrganization"
Text="Create" CssClass="Button1" ValidationGroup="CreateOrg" OnClick="createOrganization_Click" />
</div>
</asp:Panel>

View file

@ -1,56 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.ResultObjects;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class CreateOrganization : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// apply password policy
administratorPassword.SetPackagePolicy(PanelSecurity.PackageId, UserSettings.EXCHANGE_HOSTED_EDITION_POLICY, "MailboxPasswordPolicy");
}
}
protected void createOrganization_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
try
{
string orgDomain = domain.Text.Trim();
string adminEmail = administratorEmail.Text.Trim() + "@" + orgDomain;
IntResult result = ES.Services.ExchangeHostedEdition.CreateExchangeOrganization(PanelSecurity.PackageId,
organizationName.Text.Trim(),
orgDomain,
administratorName.Text.Trim(),
adminEmail,
administratorPassword.Password);
if (result.IsSuccess)
{
// navigate to details
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString(), "ItemID=" + result.Value.ToString()));
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_CREATE_ORGANIZATION", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_CREATE_ORGANIZATION", ex);
}
}
}
}

View file

@ -1,186 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class CreateOrganization {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <summary>
/// CreateExchangeOrganizationPanel 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 CreateExchangeOrganizationPanel;
/// <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>
/// validationErrors 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.ValidationSummary validationErrors;
/// <summary>
/// locOrganizationName 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 locOrganizationName;
/// <summary>
/// organizationName 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 organizationName;
/// <summary>
/// requireOrganizationName 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 requireOrganizationName;
/// <summary>
/// locAdministratorName 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 locAdministratorName;
/// <summary>
/// administratorName 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 administratorName;
/// <summary>
/// requireAdministratorName 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 requireAdministratorName;
/// <summary>
/// locAdministratorEmail 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 locAdministratorEmail;
/// <summary>
/// administratorEmail 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 administratorEmail;
/// <summary>
/// requireAdministratorEmail 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 requireAdministratorEmail;
/// <summary>
/// domain 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 domain;
/// <summary>
/// requireDomain 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 requireDomain;
/// <summary>
/// requireCorrectDomain 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.RegularExpressionValidator requireCorrectDomain;
/// <summary>
/// locAdministratorPassword 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 locAdministratorPassword;
/// <summary>
/// administratorPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.PasswordControl administratorPassword;
/// <summary>
/// createOrganization 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 createOrganization;
}
}

View file

@ -1,21 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DeleteOrganization.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeHostedEdition.DeleteOrganization" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<div>
<asp:Localize ID="locWarningMessage" runat="server" meta:resourcekey="locWarningMessage"></asp:Localize>
</div>
<asp:CheckBox ID="confirmDelete" runat="server" meta:resourcekey="confirmDelete" Text="I confirm deletion of this organization and all its contents" />
</div>
<div class="FormFooter">
<asp:Button ID="delete" runat="server" meta:resourcekey="delete" Text="Delete"
CssClass="Button1" onclick="delete_Click" />
<asp:Button ID="cancel" runat="server" meta:resourcekey="cancel" Text="Cancel"
CssClass="Button1" CausesValidation="false" onclick="cancel_Click" />
</div>

View file

@ -1,54 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class DeleteOrganization : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void delete_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
if (!confirmDelete.Checked)
{
messageBox.ShowWarningMessage("EXCHANGE_HOSTED_CONFIRM_DELETE_ORGANIZATION");
return;
}
try
{
ResultObject result = ES.Services.ExchangeHostedEdition.DeleteExchangeOrganization(PanelRequest.ItemID);
if (result.IsSuccess)
{
// navigate to details
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString()));
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_DELETE_ORGANIZATION", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_DELETE_ORGANIZATION", ex);
}
}
protected void cancel_Click(object sender, EventArgs e)
{
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString(), "ItemID=" + PanelRequest.ItemID.ToString()));
}
}
}

View file

@ -1,69 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class DeleteOrganization {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <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>
/// locWarningMessage 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 locWarningMessage;
/// <summary>
/// confirmDelete 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 confirmDelete;
/// <summary>
/// delete 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 delete;
/// <summary>
/// cancel 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 cancel;
}
}

View file

@ -1,166 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrganizationDetails.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeHostedEdition.OrganizationDetails" %>
<%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<fieldset>
<legend><asp:Localize ID="locOrganizationDetails" runat="server" meta:resourcekey="locOrganizationDetails">Organization Details</asp:Localize></legend>
<table>
<tr>
<td class="Label" style="width:150px;"><asp:Localize ID="locOrganizationName" runat="server" meta:resourcekey="locOrganizationName">Organization name:</asp:Localize></td>
<td><asp:Literal ID="organizationName" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locAdministratorName" runat="server" meta:resourcekey="locAdministratorName">Administrator name:</asp:Localize></td>
<td><asp:Literal ID="administratorName" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locAdministratorEmail" runat="server" meta:resourcekey="locAdministratorEmail">Administrator e-mail:</asp:Localize></td>
<td><asp:Literal ID="administratorEmail" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locEcpURL" runat="server" meta:resourcekey="locEcpURL">Exchange Control Panel:</asp:Localize></td>
<td><asp:HyperLink ID="ecpURL" runat="server" Target="_blank"></asp:HyperLink></td>
</tr>
</table>
<div style="text-align:right;">
<asp:Button ID="deleteOrganization" runat="server"
meta:resourcekey="deleteOrganization" Text="Delete Organization"
CssClass="Button1" onclick="deleteOrganization_Click" />
</div>
</fieldset>
<fieldset id="servicePlanBlock" runat="server">
<legend><asp:Localize ID="locServicePlan" runat="server" meta:resourcekey="locServicePlan">Service Plan</asp:Localize></legend>
<table>
<tr>
<td class="Label"><asp:Localize ID="locService" runat="server" meta:resourcekey="locService">Service:</asp:Localize></td>
<td><asp:Literal ID="serviceName" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locProgramID" runat="server" meta:resourcekey="locProgramID">Program ID:</asp:Localize></td>
<td><asp:Literal ID="programID" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locOfferID" runat="server" meta:resourcekey="locOfferID">Offer ID:</asp:Localize></td>
<td><asp:Literal ID="offerID" runat="server"></asp:Literal></td>
</tr>
</table>
<div style="text-align:right;">
<asp:Button ID="changeServicePlan" runat="server"
meta:resourcekey="changeServicePlan" Text="Change Service Plan"
CssClass="Button1" onclick="changeServicePlan_Click" />
</div>
<div>
<asp:Label ID="lblAdminsWarning" runat="server" ForeColor="Red" meta:resourcekey="lblAdminsWarning">Visible to admins only</asp:Label>
</div>
</fieldset>
<fieldset>
<legend><asp:Localize ID="locQuotas" runat="server" meta:resourcekey="locQuotas">Quotas</asp:Localize></legend>
<table>
<tr>
<td class="Label"><asp:Localize ID="locMailboxes" runat="server" meta:resourcekey="locMailboxes">Mailboxes:</asp:Localize></td>
<td><asp:Literal ID="mailboxes" runat="server">0 of 0 (max 0)</asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locContacts" runat="server" meta:resourcekey="locContacts">Contacts:</asp:Localize></td>
<td><asp:Literal ID="contacts" runat="server">0 of 0 (max 0)</asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locDistributionLists" runat="server" meta:resourcekey="locDistributionLists">Distribution Lists:</asp:Localize></td>
<td><asp:Literal ID="distributionLists" runat="server">0 of 0 (max 0)</asp:Literal></td>
</tr>
</table>
<div style="text-align:right;">
<asp:Button ID="updateQuotas" runat="server" meta:resourcekey="updateQuotas"
Text="Update Quotas" CssClass="Button1" onclick="updateQuotas_Click" />
</div>
</fieldset>
<fieldset>
<legend><asp:Localize ID="locDomains" runat="server" meta:resourcekey="locDomains">Domains</asp:Localize></legend>
<div class="FormButtonsBarClean">
<asp:Button ID="btnAddDomain" runat="server" meta:resourcekey="btnAddDomain"
Text="Add Domain" CssClass="Button1" onclick="btnAddDomain_Click" />
</div>
<asp:GridView ID="gvDomains" runat="server" AutoGenerateColumns="False" EnableViewState="true"
EmptyDataText="gvDomains" CssSelectorClass="NormalGridView" DataKeyNames="Name"
onrowdeleting="gvDomains_RowDeleting">
<Columns>
<asp:TemplateField HeaderText="gvDomainsName">
<ItemStyle Width="70%"></ItemStyle>
<ItemTemplate>
<%# Eval("Name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvDomainsIsDefault">
<ItemTemplate>
<div style="text-align:center">
&nbsp;
<asp:Image runat="server" SkinID="Checkbox16" Visible='<%# Eval("IsDefault") %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvDomainsIsTemp">
<ItemTemplate>
<div style="text-align:center">
&nbsp;
<asp:Image runat="server" SkinID="Checkbox16" Visible='<%# Eval("IsTemp") %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
&nbsp;<asp:ImageButton ID="imgDelDomain" runat="server" Text="Delete" SkinID="ExchangeDelete"
CommandName="delete" CommandArgument='<%# Eval("Name") %>' Visible='<%# !((bool)Eval("IsTemp") || (bool)Eval("IsDefault")) %>'
meta:resourcekey="cmdDelete" OnClientClick="return confirm('Are you sure you want to remove selected domain?')"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Localize ID="locDomainsQuota" runat="server" meta:resourcekey="locDomainsQuota" Text="Total domains used:"></asp:Localize>
&nbsp;&nbsp;&nbsp;
<wsp:QuotaViewer ID="domainsQuota" runat="server" QuotaTypeId="2" />
</fieldset>
<%--
<fieldset>
<legend><asp:Localize ID="locCatchAll" runat="server" meta:resourcekey="locCatchAll">Catch-all</asp:Localize></legend>
<table>
<tr>
<td class="Label"><asp:Localize ID="locCatchAllAddress" runat="server" meta:resourcekey="locCatchAllAddress">Catch-all address:</asp:Localize></td>
<td><asp:Literal ID="catchAllAddress" runat="server">(not set)</asp:Literal></td>
</tr>
</table>
<div style="text-align:right;">
<asp:Button ID="setCatchAll" runat="server" meta:resourcekey="setCatchAll"
Text="Set Catch-all" CssClass="Button1" onclick="setCatchAll_Click" />
</div>
</fieldset>
--%>
<fieldset id="organizationSummary" runat="server">
<legend><asp:Localize ID="locSetupInstructions" runat="server" meta:resourcekey="locSetupInstructions">Setup Instructions</asp:Localize></legend>
<div style="padding:10px;">
<asp:Literal ID="setupInstructions" runat="server">(not set)</asp:Literal>
</div>
<div>
<asp:Localize ID="locSendTo" runat="server" meta:resourcekey="locSendTo" Text="Send to e-mail:"></asp:Localize>
<asp:TextBox ID="sendTo" runat="server" Width="150"></asp:TextBox>
<asp:Button ID="sendSetupInstructions" runat="server" ValidationGroup="SendInstructions"
meta:resourcekey="sendSetupInstructions" Text="Send"
CssClass="Button1" onclick="sendSetupInstructions_Click" />
<asp:RequiredFieldValidator ID="requireSendTo" runat="server" meta:resourcekey="requireSendTo" ControlToValidate="sendTo" ValidationGroup="SendInstructions"
Text="*" Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
</div>
</fieldset>
</div>

View file

@ -1,211 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ExchangeHostedEdition;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class OrganizationDetails : WebsitePanelModuleBase
{
private int ItemID
{
get { return (ViewState["ItemID"] != null) ? (int)ViewState["ItemID"] : 0; }
set { ViewState["ItemID"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
// get organization details
ExchangeOrganization[] orgs = ES.Services.ExchangeHostedEdition.GetOrganizations(PanelSecurity.PackageId);
if (orgs.Length == 0)
{
// create a new organization
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "create_org"));
return;
}
else
{
// bind
if(!IsPostBack)
BindOrganization(orgs[0].Id);
}
}
private void BindOrganization(int itemId)
{
// load organization details
ExchangeOrganization org = null;
try
{
org = ES.Services.ExchangeHostedEdition.GetExchangeOrganizationDetails(itemId);
if (org == null)
throw new ArgumentNullException("Organization not found");
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_GET_ORGANIZATION", ex);
return;
}
// basic details
ItemID = org.Id;
organizationName.Text = org.Name;
administratorName.Text = org.AdministratorName;
administratorEmail.Text = org.AdministratorEmail;
ecpURL.Text = org.ExchangeControlPanelUrl;
ecpURL.NavigateUrl = org.ExchangeControlPanelUrl;
// service plan
serviceName.Text = org.ServicePlan;
programID.Text = org.ProgramId;
offerID.Text = org.OfferId;
servicePlanBlock.Visible = (PanelSecurity.LoggedUser.Role == EnterpriseServer.UserRole.Administrator);
// quotas
string quotaFormat = GetLocalizedString("quota.FormatText");
mailboxes.Text = String.Format(quotaFormat, org.MailboxCount, FormatUnlimited(org.MailboxCountQuota), FormatUnlimited(org.MaxMailboxCountQuota));
contacts.Text = String.Format(quotaFormat, org.ContactCount, FormatUnlimited(org.ContactCountQuota), FormatUnlimited(org.MaxContactCountQuota));
distributionLists.Text = String.Format(quotaFormat, org.DistributionListCount, FormatUnlimited(org.DistributionListCountQuota), FormatUnlimited(org.MaxDistributionListCountQuota));
// catch-all
//catchAllAddress.Text = !String.IsNullOrEmpty(org.CatchAllAddress) ? org.CatchAllAddress : GetLocalizedString("catchAllNotSet.Text");
// domains
BindOrganizationDomains(org);
// summary
BindOrganizationSummary(org);
}
private string FormatUnlimited(int num)
{
return (num != -1) ? num.ToString() : GetLocalizedString("unlimited.Text");
}
private void BindOrganizationDomains(ExchangeOrganization org)
{
try
{
// bind grid
gvDomains.DataSource = org.Domains;
gvDomains.DataBind();
// set gauge
domainsQuota.QuotaValue = org.MaxDomainsCountQuota;
domainsQuota.QuotaUsedValue = org.Domains.Length;
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_GET_DOMAINS", ex);
return;
}
}
private void BindOrganizationSummary(ExchangeOrganization org)
{
try
{
string summaryText = ES.Services.ExchangeHostedEdition.GetExchangeOrganizationSummary(org.Id);
setupInstructions.Text = !String.IsNullOrEmpty(summaryText) ? summaryText : GetLocalizedString("summaryTemplateNotSet.Text");
// hide block if template is not set
organizationSummary.Visible = !String.IsNullOrEmpty(summaryText) || (PanelSecurity.LoggedUser.Role != EnterpriseServer.UserRole.User);
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_GET_DOMAINS", ex);
return;
}
}
protected void gvDomains_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
// delete domain
DeleteDomain(gvDomains.DataKeys[e.RowIndex][0].ToString());
// cancel event
e.Cancel = true;
}
private void DeleteDomain(string domainName)
{
try
{
// call service
ResultObject result = ES.Services.ExchangeHostedEdition.DeleteExchangeOrganizationDomain(ItemID, domainName);
// check results
if (result.IsSuccess)
{
// refresh details
BindOrganization(ItemID);
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_DELETE_DOMAIN", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_DELETE_DOMAIN", ex);
}
}
protected void deleteOrganization_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("ItemID", ItemID.ToString(), "delete_org", "SpaceID=" + PanelSecurity.PackageId.ToString()));
}
protected void changeServicePlan_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("ItemID", ItemID.ToString(), "update_org_plan", "SpaceID=" + PanelSecurity.PackageId.ToString()));
}
protected void updateQuotas_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("ItemID", ItemID.ToString(), "update_org_quotas", "SpaceID=" + PanelSecurity.PackageId.ToString()));
}
protected void btnAddDomain_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("ItemID", ItemID.ToString(), "add_org_domain", "SpaceID=" + PanelSecurity.PackageId.ToString()));
}
protected void setCatchAll_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("ItemID", ItemID.ToString(), "update_org_catchall", "SpaceID=" + PanelSecurity.PackageId.ToString()));
}
protected void sendSetupInstructions_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
try
{
ResultObject result = ES.Services.ExchangeHostedEdition.SendExchangeOrganizationSummary(ItemID, sendTo.Text.Trim());
if (result.IsSuccess)
{
// display success message
messageBox.ShowSuccessMessage("EXCHANGE_HOSTED_SEND_SUMMARY");
}
else
{
// display error message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_SEND_SUMMARY", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_SEND_SUMMARY", ex);
}
}
}
}

View file

@ -1,393 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class OrganizationDetails {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <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>
/// locOrganizationDetails 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 locOrganizationDetails;
/// <summary>
/// locOrganizationName 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 locOrganizationName;
/// <summary>
/// organizationName 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.Literal organizationName;
/// <summary>
/// locAdministratorName 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 locAdministratorName;
/// <summary>
/// administratorName 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.Literal administratorName;
/// <summary>
/// locAdministratorEmail 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 locAdministratorEmail;
/// <summary>
/// administratorEmail 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.Literal administratorEmail;
/// <summary>
/// locEcpURL 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 locEcpURL;
/// <summary>
/// ecpURL 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.HyperLink ecpURL;
/// <summary>
/// deleteOrganization 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 deleteOrganization;
/// <summary>
/// servicePlanBlock control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl servicePlanBlock;
/// <summary>
/// locServicePlan 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 locServicePlan;
/// <summary>
/// locService 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 locService;
/// <summary>
/// serviceName 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.Literal serviceName;
/// <summary>
/// locProgramID 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 locProgramID;
/// <summary>
/// programID 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.Literal programID;
/// <summary>
/// locOfferID 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 locOfferID;
/// <summary>
/// offerID 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.Literal offerID;
/// <summary>
/// changeServicePlan 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 changeServicePlan;
/// <summary>
/// lblAdminsWarning 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 lblAdminsWarning;
/// <summary>
/// locQuotas 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 locQuotas;
/// <summary>
/// locMailboxes 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 locMailboxes;
/// <summary>
/// mailboxes 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.Literal mailboxes;
/// <summary>
/// locContacts 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 locContacts;
/// <summary>
/// contacts 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.Literal contacts;
/// <summary>
/// locDistributionLists 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 locDistributionLists;
/// <summary>
/// distributionLists 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.Literal distributionLists;
/// <summary>
/// updateQuotas 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 updateQuotas;
/// <summary>
/// locDomains 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 locDomains;
/// <summary>
/// btnAddDomain 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 btnAddDomain;
/// <summary>
/// gvDomains 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.GridView gvDomains;
/// <summary>
/// locDomainsQuota 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 locDomainsQuota;
/// <summary>
/// domainsQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.QuotaViewer domainsQuota;
/// <summary>
/// organizationSummary control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl organizationSummary;
/// <summary>
/// locSetupInstructions 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 locSetupInstructions;
/// <summary>
/// setupInstructions 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.Literal setupInstructions;
/// <summary>
/// locSendTo 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 locSendTo;
/// <summary>
/// sendTo 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 sendTo;
/// <summary>
/// sendSetupInstructions 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 sendSetupInstructions;
/// <summary>
/// requireSendTo 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 requireSendTo;
}
}

View file

@ -1,44 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UpdateOrganizationCatchAll.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeHostedEdition.UpdateOrganizationCatchAll" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<asp:ValidationSummary ID="validationErrors" runat="server" ValidationGroup="CatchAll" DisplayMode="List" ShowMessageBox="true" ShowSummary="false" />
<table>
<tr>
<td colspan="2">
<asp:RadioButtonList ID="catchAllMode" runat="server" AutoPostBack="true"
onselectedindexchanged="catchAllMode_SelectedIndexChanged">
<asp:ListItem Value="Disabled" meta:resourcekey="catchAllModeDisabled" Text="Disabled"></asp:ListItem>
<asp:ListItem Value="Enabled" meta:resourcekey="catchAllModeEnabled" Text="Enabled" Selected="True"></asp:ListItem>
</asp:RadioButtonList>
<br />
</td>
</tr>
<tr id="rawCatchAllAddress" runat="server">
<td><asp:Localize ID="locCatchAllAddress" runat="server" meta:resourcekey="locCatchAllAddress">Catch-all mailbox:</asp:Localize></td>
<td>
<asp:TextBox ID="catchAllAddress" runat="server" Width="100"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireCatchAllAddress" runat="server" meta:resourcekey="requireCatchAllAddress" ControlToValidate="catchAllAddress" ValidationGroup="CatchAll"
Text="*" ErrorMessage="Enter catch-all e-mail address" Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="requireCorrectEmail" runat="server"
ErrorMessage="Enter valid e-mail address" ControlToValidate="catchAllAddress" Display="Dynamic" ValidationGroup="CatchAll"
meta:resourcekey="requireCorrectEmail" ValidationExpression="^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+$" SetFocusOnError="True"></asp:RegularExpressionValidator>
@
<asp:DropDownList ID="domains" runat="server" DataValueField="Name" DataTextField="Name"></asp:DropDownList>
<asp:RequiredFieldValidator ID="requireDomain" runat="server" meta:resourcekey="requireDomain" ControlToValidate="domains" ValidationGroup="CatchAll"
Text="*" ErrorMessage="Select domain" Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
</td>
</tr>
</table>
</div>
<div class="FormFooter">
<asp:Button ID="update" runat="server" meta:resourcekey="update" Text="Update"
CssClass="Button1" onclick="update_Click" ValidationGroup="CatchAll" />
<asp:Button ID="cancel" runat="server" meta:resourcekey="cancel" Text="Cancel"
CssClass="Button1" CausesValidation="false" onclick="cancel_Click" />
</div>

View file

@ -1,108 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ExchangeHostedEdition;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class UpdateOrganizationCatchAll : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindOrganizationDomains();
BindCatchAllMode();
}
}
private void BindOrganizationDomains()
{
try
{
// read domains
ExchangeOrganizationDomain[] orgDomains = ES.Services.ExchangeHostedEdition.GetExchangeOrganizationDomains(PanelRequest.ItemID);
// bind domains
domains.DataSource = orgDomains;
domains.DataBind();
// select default domain
foreach (ExchangeOrganizationDomain domain in orgDomains)
{
if (domain.IsDefault)
{
domains.SelectedValue = domain.Name;
break;
}
}
// insert empty item in the beginning
domains.Items.Insert(0, new ListItem(GetLocalizedString("SelectDomain.Text"), ""));
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_GET_DOMAINS", ex);
}
}
private void BindCatchAllMode()
{
rawCatchAllAddress.Visible = (catchAllMode.SelectedIndex > 0);
}
protected void update_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
try
{
// collect form data
string catchAllEmail = catchAllAddress.Text.Trim() + "@" + domains.SelectedValue;
if (catchAllMode.SelectedIndex == 0)
{
catchAllEmail = ""; // disabled
}
// call service
ResultObject result = ES.Services.ExchangeHostedEdition.UpdateExchangeOrganizationCatchAllAddress(
PanelRequest.ItemID, catchAllEmail);
// check results
if (result.IsSuccess)
{
// navigate to details
RedirectBack();
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_CHANGE_QUOTAS", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_CHANGE_QUOTAS", ex);
}
}
protected void cancel_Click(object sender, EventArgs e)
{
RedirectBack();
}
private void RedirectBack()
{
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString(), "ItemID=" + PanelRequest.ItemID.ToString()));
}
protected void catchAllMode_SelectedIndexChanged(object sender, EventArgs e)
{
BindCatchAllMode();
}
}
}

View file

@ -1,132 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class UpdateOrganizationCatchAll {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <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>
/// validationErrors 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.ValidationSummary validationErrors;
/// <summary>
/// catchAllMode 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.RadioButtonList catchAllMode;
/// <summary>
/// rawCatchAllAddress control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rawCatchAllAddress;
/// <summary>
/// locCatchAllAddress 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 locCatchAllAddress;
/// <summary>
/// catchAllAddress 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 catchAllAddress;
/// <summary>
/// requireCatchAllAddress 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 requireCatchAllAddress;
/// <summary>
/// requireCorrectEmail 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.RegularExpressionValidator requireCorrectEmail;
/// <summary>
/// domains 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.DropDownList domains;
/// <summary>
/// requireDomain 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 requireDomain;
/// <summary>
/// update 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 update;
/// <summary>
/// cancel 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 cancel;
}
}

View file

@ -1,52 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UpdateOrganizationQuotas.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeHostedEdition.UpdateOrganizationQuotas" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<asp:ValidationSummary ID="validationErrors" runat="server" ValidationGroup="OrgQuotas" DisplayMode="List" ShowMessageBox="true" ShowSummary="false" />
<table>
<tr>
<td class="Label"><asp:Localize ID="locMailboxes" runat="server" meta:resourcekey="locMailboxes" Text="Mailboxes:"></asp:Localize></td>
<td>
<asp:TextBox ID="mailboxes" runat="server" Width="50"></asp:TextBox>
<asp:Literal ID="maxMailboxes" runat="server">(max 0)</asp:Literal>
<asp:RequiredFieldValidator ID="requireMailboxes" runat="server" meta:resourcekey="requireMailboxes" ControlToValidate="mailboxes" ValidationGroup="OrgQuotas"
Text="*" ErrorMessage="Enter mailboxes quota" Display="Dynamic" SetFocusOnError="true" Enabled="false"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rangeMailboxes" runat="server" meta:resourcekey="rangeMailboxes" ControlToValidate="mailboxes" ValidationGroup="OrgQuotas"
Text="!" ErrorMessage="Specify correct number" Display="Dynamic" SetFocusOnError="true" MinimumValue="0" MaximumValue="1000000" Type="Integer"></asp:RangeValidator>
</td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locContacts" runat="server" meta:resourcekey="locContacts" Text="Contacts:"></asp:Localize></td>
<td>
<asp:TextBox ID="contacts" runat="server" Width="50"></asp:TextBox>
<asp:Literal ID="maxContacts" runat="server">(max 0)</asp:Literal>
<asp:RequiredFieldValidator ID="requireContacts" runat="server" meta:resourcekey="requireContacts" ControlToValidate="contacts" ValidationGroup="OrgQuotas"
Text="*" ErrorMessage="Enter contacts quota" Display="Dynamic" SetFocusOnError="true" Enabled="false"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rangeContacts" runat="server" meta:resourcekey="rangeContacts" ControlToValidate="contacts" ValidationGroup="OrgQuotas"
Text="!" ErrorMessage="Specify correct number" Display="Dynamic" SetFocusOnError="true" MinimumValue="0" MaximumValue="1000000" Type="Integer"></asp:RangeValidator>
</td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locDistributionLists" runat="server" meta:resourcekey="locDistributionLists" Text="Distribution Lists:"></asp:Localize></td>
<td>
<asp:TextBox ID="distributionLists" runat="server" Width="50"></asp:TextBox>
<asp:Literal ID="maxDistributionLists" runat="server">(max 0)</asp:Literal>
<asp:RequiredFieldValidator ID="requireDistributionLists" runat="server" meta:resourcekey="requireDistributionLists" ControlToValidate="distributionLists" ValidationGroup="OrgQuotas"
Text="*" ErrorMessage="Enter distribution lists quota" Display="Dynamic" SetFocusOnError="true" Enabled="false"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="rangeDistributionLists" runat="server" meta:resourcekey="rangeDistributionLists" ControlToValidate="distributionLists" ValidationGroup="OrgQuotas"
Text="!" ErrorMessage="Specify correct number" Display="Dynamic" SetFocusOnError="true" MinimumValue="0" MaximumValue="1000000" Type="Integer"></asp:RangeValidator>
</td>
</tr>
</table>
</div>
<div class="FormFooter">
<asp:Button ID="update" runat="server" meta:resourcekey="update" Text="Update"
CssClass="Button1" onclick="update_Click" ValidationGroup="OrgQuotas" />
<asp:Button ID="cancel" runat="server" meta:resourcekey="cancel" Text="Cancel"
CssClass="Button1" CausesValidation="false" onclick="cancel_Click" />
</div>

View file

@ -1,121 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ExchangeHostedEdition;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class UpdateOrganizationQuotas : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindOrganizationQuotas();
}
}
private void BindOrganizationQuotas()
{
// load organization details
ExchangeOrganization org = null;
try
{
org = ES.Services.ExchangeHostedEdition.GetExchangeOrganizationDetails(PanelRequest.ItemID);
if (org == null)
throw new ArgumentNullException("Organization not found");
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_GET_ORGANIZATION", ex);
return;
}
// current quotas
mailboxes.Text = IsUnlimited(org.MailboxCountQuota) ? "" : org.MailboxCountQuota.ToString();
contacts.Text = IsUnlimited(org.ContactCountQuota) ? "" : org.ContactCountQuota.ToString();
distributionLists.Text = IsUnlimited(org.DistributionListCountQuota) ? "" : org.DistributionListCountQuota.ToString();
// max quotas
string maxQuotaFormat = GetLocalizedString("maxQuota.Text");
maxMailboxes.Text = String.Format(maxQuotaFormat, FormatUnlimited(org.MaxMailboxCountQuota));
maxContacts.Text = String.Format(maxQuotaFormat, FormatUnlimited(org.MaxContactCountQuota));
maxDistributionLists.Text = String.Format(maxQuotaFormat, FormatUnlimited(org.MaxDistributionListCountQuota));
if (!IsUnlimited(org.MaxMailboxCountQuota))
{
requireMailboxes.Enabled = true;
rangeMailboxes.MaximumValue = org.MaxMailboxCountQuota.ToString();
}
if (!IsUnlimited(org.MaxContactCountQuota))
{
requireContacts.Enabled = true;
rangeContacts.MaximumValue = org.MaxContactCountQuota.ToString();
}
if (!IsUnlimited(org.MaxDistributionListCountQuota))
{
requireDistributionLists.Enabled = true;
rangeDistributionLists.MaximumValue = org.MaxDistributionListCountQuota.ToString();
}
}
private bool IsUnlimited(int num)
{
return (num == -1);
}
private string FormatUnlimited(int num)
{
return IsUnlimited(num) ? GetLocalizedString("unlimited.Text") : num.ToString();
}
protected void update_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
try
{
// collect form data
int mailboxesNumber = (mailboxes.Text.Trim() == "") ? -1 : Utils.ParseInt(mailboxes.Text, 0);
int contactsNumber = (contacts.Text.Trim() == "") ? -1 : Utils.ParseInt(contacts.Text, 0);
int distributionListsNumber = (distributionLists.Text.Trim() == "") ? -1 : Utils.ParseInt(distributionLists.Text, 0);
// call service
ResultObject result = ES.Services.ExchangeHostedEdition.UpdateExchangeOrganizationQuotas(
PanelRequest.ItemID, mailboxesNumber, contactsNumber, distributionListsNumber);
// check results
if (result.IsSuccess)
{
// navigate to details
RedirectBack();
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_CHANGE_QUOTAS", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_CHANGE_QUOTAS", ex);
}
}
protected void cancel_Click(object sender, EventArgs e)
{
RedirectBack();
}
private void RedirectBack()
{
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString(), "ItemID=" + PanelRequest.ItemID.ToString()));
}
}
}

View file

@ -1,195 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class UpdateOrganizationQuotas {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <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>
/// validationErrors 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.ValidationSummary validationErrors;
/// <summary>
/// locMailboxes 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 locMailboxes;
/// <summary>
/// mailboxes 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 mailboxes;
/// <summary>
/// maxMailboxes 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.Literal maxMailboxes;
/// <summary>
/// requireMailboxes 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 requireMailboxes;
/// <summary>
/// rangeMailboxes 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.RangeValidator rangeMailboxes;
/// <summary>
/// locContacts 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 locContacts;
/// <summary>
/// contacts 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 contacts;
/// <summary>
/// maxContacts 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.Literal maxContacts;
/// <summary>
/// requireContacts 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 requireContacts;
/// <summary>
/// rangeContacts 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.RangeValidator rangeContacts;
/// <summary>
/// locDistributionLists 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 locDistributionLists;
/// <summary>
/// distributionLists 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 distributionLists;
/// <summary>
/// maxDistributionLists 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.Literal maxDistributionLists;
/// <summary>
/// requireDistributionLists 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 requireDistributionLists;
/// <summary>
/// rangeDistributionLists 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.RangeValidator rangeDistributionLists;
/// <summary>
/// update 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 update;
/// <summary>
/// cancel 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 cancel;
}
}

View file

@ -1,58 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UpdateOrganizationServicePlan.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeHostedEdition.UpdateOrganizationServicePlan" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div class="FormBody">
<wsp:SimpleMessageBox ID="messageBox" runat="server" />
<asp:ValidationSummary ID="validationErrors" runat="server" ValidationGroup="ServicePlan" DisplayMode="List" ShowMessageBox="true" ShowSummary="false" />
<fieldset>
<legend><asp:Localize ID="locCurrentServicePlan" runat="server" meta:resourcekey="locCurrentServicePlan" Text="Current Service Plan"></asp:Localize></legend>
<table>
<tr>
<td class="Label"><asp:Localize ID="locCurrentService" runat="server" meta:resourcekey="locService" Text="Service:"></asp:Localize></td>
<td><asp:Literal ID="currentServiceName" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locCurrentProgramID" runat="server" meta:resourcekey="locProgramID" Text="Program ID:"></asp:Localize></td>
<td><asp:Literal ID="currentProgramID" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locCurrentOfferID" runat="server" meta:resourcekey="locOfferID" Text="Offer ID:"></asp:Localize></td>
<td><asp:Literal ID="currentOfferID" runat="server"></asp:Literal></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><asp:Localize ID="locNewServicePlan" runat="server" meta:resourcekey="locNewServicePlan" Text="New Service Plan"></asp:Localize></legend>
<table>
<tr>
<td class="Label"><asp:Localize ID="locNewService" runat="server" meta:resourcekey="locService" Text="Service:"></asp:Localize></td>
<td>
<asp:DropDownList ID="services" runat="server" DataValueField="ServiceId"
DataTextField="FullServiceName" AutoPostBack="True"
onselectedindexchanged="services_SelectedIndexChanged"></asp:DropDownList>
<asp:RequiredFieldValidator ID="requireServices" runat="server" meta:resourcekey="requireServices" ControlToValidate="services" ValidationGroup="ServicePlan"
Text="*" ErrorMessage="Select new service" Display="Dynamic" SetFocusOnError="true"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locNewProgramID" runat="server" meta:resourcekey="locProgramID" Text="Program ID:"></asp:Localize></td>
<td><asp:Literal ID="newProgramID" runat="server"></asp:Literal></td>
</tr>
<tr>
<td class="Label"><asp:Localize ID="locNewOfferID" runat="server" meta:resourcekey="locOfferID" Text="Offer ID:"></asp:Localize></td>
<td><asp:Literal ID="newOfferID" runat="server"></asp:Literal></td>
</tr>
</table>
</fieldset>
</div>
<div class="FormFooter">
<asp:Button ID="apply" runat="server" meta:resourcekey="apply" Text="Apply"
CssClass="Button1" onclick="apply_Click" ValidationGroup="ServicePlan" />
<asp:Button ID="cancel" runat="server" meta:resourcekey="cancel" Text="Cancel"
CssClass="Button1" CausesValidation="false" onclick="cancel_Click" />
</div>

View file

@ -1,121 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.ExchangeHostedEdition;
namespace WebsitePanel.Portal.ExchangeHostedEdition
{
public partial class UpdateOrganizationServicePlan : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindServices();
BindOrganizationDetails();
}
}
private void BindServices()
{
// bind
services.DataSource = ES.Services.Servers.GetRawServicesByGroupName(ResourceGroups.ExchangeHostedEdition).Tables[0].DefaultView;
services.DataBind();
// insert empty item
services.Items.Insert(0, new ListItem(GetLocalizedString("SelectService.Text"), ""));
}
private void BindOrganizationDetails()
{
ExchangeOrganization org = ES.Services.ExchangeHostedEdition.GetExchangeOrganizationDetails(PanelRequest.ItemID);
if (org == null)
return;
// selected service
ListItem sourceItem = null;
foreach (ListItem item in services.Items)
{
if (item.Value == org.ServiceId.ToString())
{
sourceItem = item;
currentServiceName.Text = item.Text;
break;
}
}
if (sourceItem != null)
services.Items.Remove(sourceItem);
currentProgramID.Text = org.ProgramId;
currentOfferID.Text = org.OfferId;
}
private void BindSelectedService()
{
int newServiceId = Utils.ParseInt(services.SelectedValue, 0);
// get service settings
string[] settings = ES.Services.Servers.GetServiceSettings(newServiceId);
foreach (string setting in settings)
{
string[] pair = setting.Split('=');
if(String.Equals(pair[0], "ProgramID", StringComparison.InvariantCultureIgnoreCase))
newProgramID.Text = pair[1];
else if (String.Equals(pair[0], "OfferID", StringComparison.InvariantCultureIgnoreCase))
newOfferID.Text = pair[1];
}
}
protected void services_SelectedIndexChanged(object sender, EventArgs e)
{
BindSelectedService();
}
protected void apply_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
try
{
// collect form data
int serviceId = Utils.ParseInt(services.SelectedValue, 0);
// call service
ResultObject result = ES.Services.ExchangeHostedEdition.UpdateExchangeOrganizationServicePlan(PanelRequest.ItemID, serviceId);
// check results
if (result.IsSuccess)
{
// navigate to details
RedirectBack();
}
else
{
// display message
messageBox.ShowMessage(result, "EXCHANGE_HOSTED_CHANGE_SERVICE_PLAN", "ExchangeHostedEdition");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_HOSTED_CHANGE_SERVICE_PLAN", ex);
}
}
protected void cancel_Click(object sender, EventArgs e)
{
RedirectBack();
}
private void RedirectBack()
{
Response.Redirect(NavigateURL("SpaceID", PanelSecurity.PackageId.ToString(), "ItemID=" + PanelRequest.ItemID.ToString()));
}
}
}

View file

@ -1,195 +0,0 @@
//------------------------------------------------------------------------------
// <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.ExchangeHostedEdition {
public partial class UpdateOrganizationServicePlan {
/// <summary>
/// asyncTasks control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
/// <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>
/// validationErrors 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.ValidationSummary validationErrors;
/// <summary>
/// locCurrentServicePlan 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 locCurrentServicePlan;
/// <summary>
/// locCurrentService 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 locCurrentService;
/// <summary>
/// currentServiceName 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.Literal currentServiceName;
/// <summary>
/// locCurrentProgramID 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 locCurrentProgramID;
/// <summary>
/// currentProgramID 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.Literal currentProgramID;
/// <summary>
/// locCurrentOfferID 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 locCurrentOfferID;
/// <summary>
/// currentOfferID 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.Literal currentOfferID;
/// <summary>
/// locNewServicePlan 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 locNewServicePlan;
/// <summary>
/// locNewService 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 locNewService;
/// <summary>
/// services 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.DropDownList services;
/// <summary>
/// requireServices 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 requireServices;
/// <summary>
/// locNewProgramID 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 locNewProgramID;
/// <summary>
/// newProgramID 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.Literal newProgramID;
/// <summary>
/// locNewOfferID 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 locNewOfferID;
/// <summary>
/// newOfferID 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.Literal newOfferID;
/// <summary>
/// apply 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 apply;
/// <summary>
/// cancel 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 cancel;
}
}

View file

@ -1,42 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SettingsExchangeHostedEditionOrganizationSummary.ascx.cs" Inherits="WebsitePanel.Portal.SettingsExchangeHostedEditionOrganizationSummary" %>
<table>
<tr>
<td class="SubHead" width="150" nowrap><asp:Label ID="lblFrom" runat="server" meta:resourcekey="lblFrom" Text="From:"></asp:Label></td>
<td class="Normal" width="100%">
<asp:TextBox ID="txtFrom" runat="server" Width="500px" CssClass="NormalTextBox"></asp:TextBox></td>
</tr>
<tr>
<td class="SubHead"><asp:Label ID="lblCC" runat="server" meta:resourcekey="lblCC" Text="CC:"></asp:Label></td>
<td class="Normal">
<asp:TextBox ID="txtCC" runat="server" Width="500px" CssClass="NormalTextBox"></asp:TextBox></td>
</tr>
<tr>
<td class="SubHead"><asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubject" Text="Subject:"></asp:Label></td>
<td class="Normal">
<asp:TextBox ID="txtSubject" runat="server" Width="500px" CssClass="NormalTextBox"></asp:TextBox></td>
</tr>
<tr>
<td class="SubHead"><asp:Label ID="lblPriority" runat="server" meta:resourcekey="lblPriority" Text="Priority"></asp:Label></td>
<td class="Normal">
<asp:DropDownList ID="ddlPriority" runat="server" CssClass="NormalTextBox" resourcekey="ddlPriority">
<asp:ListItem Value="High">High</asp:ListItem>
<asp:ListItem Value="Normal">Normal</asp:ListItem>
<asp:ListItem Value="Low">Low</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead" colspan="2"><br /><br /><asp:Label ID="lblHtmlBody" runat="server" meta:resourcekey="lblHtmlBody" Text="HTML Body:"></asp:Label></td>
</tr>
<tr>
<td class="Normal" colspan="2">
<asp:TextBox ID="txtHtmlBody" runat="server" Rows="15" TextMode="MultiLine" Width="680px" CssClass="NormalTextBox" Wrap="false"></asp:TextBox></td>
</tr>
<tr>
<td class="SubHead" colspan="2"><br /><br /><asp:Label ID="lblTextBody" runat="server" meta:resourcekey="lblTextBody" Text="Text Body:"></asp:Label></td>
</tr>
<tr>
<td class="Normal" colspan="2">
<asp:TextBox ID="txtTextBody" runat="server" Rows="15" TextMode="MultiLine" Width="680px" CssClass="NormalTextBox" Wrap="false"></asp:TextBox></td>
</tr>
</table>

View file

@ -1,67 +0,0 @@
// 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.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal
{
public partial class SettingsExchangeHostedEditionOrganizationSummary : WebsitePanelControlBase, IUserSettingsEditorControl
{
public void BindSettings(UserSettings settings)
{
txtFrom.Text = settings["From"];
txtCC.Text = settings["CC"];
txtSubject.Text = settings["Subject"];
Utils.SelectListItem(ddlPriority, settings["Priority"]);
txtHtmlBody.Text = settings["HtmlBody"];
txtTextBody.Text = settings["TextBody"];
}
public void SaveSettings(UserSettings settings)
{
settings["From"] = txtFrom.Text;
settings["CC"] = txtCC.Text;
settings["Subject"] = txtSubject.Text;
settings["Priority"] = ddlPriority.SelectedValue;
settings["HtmlBody"] = txtHtmlBody.Text;
settings["TextBody"] = txtTextBody.Text;
}
}
}

View file

@ -1,123 +0,0 @@
//------------------------------------------------------------------------------
// <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 SettingsExchangeHostedEditionOrganizationSummary {
/// <summary>
/// lblFrom 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 lblFrom;
/// <summary>
/// txtFrom 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 txtFrom;
/// <summary>
/// lblCC 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 lblCC;
/// <summary>
/// txtCC 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 txtCC;
/// <summary>
/// lblSubject 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 lblSubject;
/// <summary>
/// txtSubject 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 txtSubject;
/// <summary>
/// lblPriority 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 lblPriority;
/// <summary>
/// ddlPriority 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.DropDownList ddlPriority;
/// <summary>
/// lblHtmlBody 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 lblHtmlBody;
/// <summary>
/// txtHtmlBody 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 txtHtmlBody;
/// <summary>
/// lblTextBody 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 lblTextBody;
/// <summary>
/// txtTextBody 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 txtTextBody;
}
}

View file

@ -1,18 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SettingsExchangeHostedEditionPolicy.ascx.cs" Inherits="WebsitePanel.Portal.SettingsExchangeHostedEditionPolicy" %>
<%@ Register Src="UserControls/PasswordPolicyEditor.ascx" TagName="PasswordPolicyEditor" TagPrefix="wsp" %>
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="UserControls/CollapsiblePanel.ascx" %>
<wsp:CollapsiblePanel id="secMailboxPassword" runat="server"
TargetControlID="MailboxPasswordPanel" meta:resourcekey="secMailboxPassword" Text="Mailbox Password Policy"/>
<asp:Panel ID="MailboxPasswordPanel" runat="server" Height="0" style="overflow:hidden;">
<table>
<tr>
<td class="SubHead" width="150" nowrap>
</td>
<td>
<wsp:PasswordPolicyEditor id="mailboxPasswordPolicy" runat="server" />
</td>
</tr>
</table>
</asp:Panel>

View file

@ -1,58 +0,0 @@
// 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.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal
{
public partial class SettingsExchangeHostedEditionPolicy : WebsitePanelControlBase, IUserSettingsEditorControl
{
public void BindSettings(UserSettings settings)
{
// mailbox
mailboxPasswordPolicy.Value = settings["MailboxPasswordPolicy"];
}
public void SaveSettings(UserSettings settings)
{
// mailbox
settings["MailboxPasswordPolicy"] = mailboxPasswordPolicy.Value;
}
}
}

View file

@ -1,42 +0,0 @@
//------------------------------------------------------------------------------
// <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 SettingsExchangeHostedEditionPolicy {
/// <summary>
/// secMailboxPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secMailboxPassword;
/// <summary>
/// MailboxPasswordPanel 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 MailboxPasswordPanel;
/// <summary>
/// mailboxPasswordPolicy control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.PasswordPolicyEditor mailboxPasswordPolicy;
}
}

View file

@ -24,9 +24,6 @@
<div class="ToolLink">
<asp:HyperLink ID="lnkExchangeServer" runat="server" meta:resourcekey="lnkExchangeServer" Text="Exchange Server"></asp:HyperLink>
</div>
<div class="ToolLink">
<asp:HyperLink ID="lnkExchangeHostedEdition" runat="server" meta:resourcekey="lnkExchangeHostedEdition" Text="Exchange Hosting Mode"></asp:HyperLink>
</div>
<div class="ToolLink">
<asp:HyperLink ID="lnkVps" runat="server" meta:resourcekey="lnkVps" Text="Virtual Private Servers"></asp:HyperLink>
</div>

View file

@ -59,8 +59,6 @@ namespace WebsitePanel.Portal
"edit_settings", "SettingsName=ChildSpacesFolder", "SpaceID=" + PanelSecurity.PackageId.ToString());
lnkExchangeServer.NavigateUrl = EditUrl("SettingsControl", "SpaceSettingsExchangeServer",
"edit_settings", "SettingsName=ExchangeServer", "SpaceID=" + PanelSecurity.PackageId.ToString());
lnkExchangeHostedEdition.NavigateUrl = EditUrl("SettingsControl", "SpaceSettingsExchangeHostedEdition",
"edit_settings", "SettingsName=ExchangeHostedEdition", "SpaceID=" + PanelSecurity.PackageId.ToString());
lnkVps.NavigateUrl = EditUrl("SettingsControl", "SpaceSettingsVPS",
"edit_settings", "SettingsName=VirtualPrivateServers", "SpaceID=" + PanelSecurity.PackageId.ToString());
lnkVpsForPC.NavigateUrl = EditUrl("SettingsControl", "SpaceSettingsVPSForPC",

View file

@ -84,15 +84,6 @@ namespace WebsitePanel.Portal {
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkExchangeServer;
/// <summary>
/// lnkExchangeHostedEdition 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.HyperLink lnkExchangeHostedEdition;
/// <summary>
/// lnkVps control.
/// </summary>

View file

@ -1,18 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SpaceSettingsExchangeHostedEdition.ascx.cs" Inherits="WebsitePanel.Portal.SpaceSettingsExchangeHostedEdition" %>
<fieldset>
<legend><asp:Localize ID="locDomainTemplates" runat="server" meta:resourcekey="locDomainTemplates">Domain Templates</asp:Localize></legend>
<table>
<tr>
<td style="width:150px;"><asp:Localize ID="locTemporaryDomain" runat="server" meta:resourcekey="locTemporaryDomain">Temporary domain:</asp:Localize></td>
<td>organization_domain.<asp:TextBox ID="temporaryDomain" runat="server" Width="200"></asp:TextBox></td>
</tr>
<tr>
<td valign="top"><asp:Localize ID="locEcpURL" runat="server" meta:resourcekey="locEcpDomain">ECP URL template:</asp:Localize></td>
<td valign="top">
<asp:TextBox ID="ecpURL" runat="server" Width="300"></asp:TextBox><br />
<asp:Localize ID="locEcpURLDescr" runat="server" meta:resourcekey="locEcpURLDescr">You can use [DOMAIN_NAME] variable for organization default domain.</asp:Localize>
</td>
</tr>
</table>
</fieldset>

View file

@ -1,63 +0,0 @@
// 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.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal
{
public partial class SpaceSettingsExchangeHostedEdition : WebsitePanelControlBase, IPackageSettingsEditorControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void BindSettings(PackageSettings settings)
{
temporaryDomain.Text = settings["temporaryDomain"];
ecpURL.Text = settings["ecpURL"];
}
public void SaveSettings(PackageSettings settings)
{
settings["temporaryDomain"] = temporaryDomain.Text.Trim();
settings["ecpURL"] = ecpURL.Text.Trim();
}
}
}

View file

@ -1,69 +0,0 @@
//------------------------------------------------------------------------------
// <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 SpaceSettingsExchangeHostedEdition {
/// <summary>
/// locDomainTemplates 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 locDomainTemplates;
/// <summary>
/// locTemporaryDomain 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 locTemporaryDomain;
/// <summary>
/// temporaryDomain 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 temporaryDomain;
/// <summary>
/// locEcpURL 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 locEcpURL;
/// <summary>
/// ecpURL 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 ecpURL;
/// <summary>
/// locEcpURLDescr 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 locEcpURLDescr;
}
}

View file

@ -26,10 +26,6 @@
<asp:HyperLink ID="HyperLink2" runat="server" meta:resourcekey="lnkHostedSolutionReport"
Text="Exchange Mailbox Setup Letter" NavigateUrl='<%# GetSettingsLink("HostedSoluitonReportSummaryLetter", "HostedSoluitonReportSummaryLetter") %>'></asp:HyperLink>
</li>
<li>
<asp:HyperLink ID="lnkExchangeHostedEditionOrganizationSummary" runat="server" meta:resourcekey="lnkExchangeHostedEditionOrganizationSummary"
Text="Exchange Hosting Mode Organization Summary" NavigateUrl='<%# GetSettingsLink("ExchangeHostedEditionOrganizationSummary", "SettingsExchangeHostedEditionOrganizationSummary") %>'></asp:HyperLink>
</li>
<li>
<asp:HyperLink ID="lnkVpsSummaryLetter" runat="server" meta:resourcekey="lnkVpsSummaryLetter"
Text="VPS Summary Letter" NavigateUrl='<%# GetSettingsLink("VpsSummaryLetter", "SettingsVpsSummaryLetter") %>'></asp:HyperLink>

View file

@ -66,15 +66,6 @@ namespace WebsitePanel.Portal {
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink HyperLink2;
/// <summary>
/// lnkExchangeHostedEditionOrganizationSummary 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.HyperLink lnkExchangeHostedEditionOrganizationSummary;
/// <summary>
/// lnkVpsSummaryLetter control.
/// </summary>

View file

@ -37,10 +37,6 @@
<asp:HyperLink ID="lnkExchangePolicy" runat="server" meta:resourcekey="lnkExchangePolicy"
Text="Exchange Server Policy" NavigateUrl='<%# GetSettingsLink("ExchangePolicy", "SettingsExchangePolicy") %>'></asp:HyperLink>
</li>
<li>
<asp:HyperLink ID="lnkExchangeHostedEditionPolicy" runat="server" meta:resourcekey="lnkExchangeHostedEditionPolicy"
Text="Exchange Hosting Mode Policy" NavigateUrl='<%# GetSettingsLink("ExchangeHostedEditionPolicy", "SettingsExchangeHostedEditionPolicy") %>'></asp:HyperLink>
</li>
<li>
<asp:HyperLink ID="lnkVpsPolicy" runat="server" meta:resourcekey="lnkVpsPolicy"
Text="Virtual Private Servers Policy" NavigateUrl='<%# GetSettingsLink("VpsPolicy", "SettingsVpsPolicy") %>'></asp:HyperLink>

View file

@ -93,15 +93,6 @@ namespace WebsitePanel.Portal {
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkExchangePolicy;
/// <summary>
/// lnkExchangeHostedEditionPolicy 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.HyperLink lnkExchangeHostedEditionPolicy;
/// <summary>
/// lnkVpsPolicy control.
/// </summary>

View file

@ -534,13 +534,6 @@
<Compile Include="ProviderControls\HyperVForPrivateCloud_Settings.ascx.designer.cs">
<DependentUpon>HyperVForPrivateCloud_Settings.ascx</DependentUpon>
</Compile>
<Compile Include="SettingsExchangeHostedEditionOrganizationSummary.ascx.cs">
<DependentUpon>SettingsExchangeHostedEditionOrganizationSummary.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="SettingsExchangeHostedEditionOrganizationSummary.ascx.designer.cs">
<DependentUpon>SettingsExchangeHostedEditionOrganizationSummary.ascx</DependentUpon>
</Compile>
<Compile Include="SetupControlPanelAccounts.ascx.cs">
<DependentUpon>SetupControlPanelAccounts.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -548,69 +541,6 @@
<Compile Include="SetupControlPanelAccounts.ascx.designer.cs">
<DependentUpon>SetupControlPanelAccounts.ascx</DependentUpon>
</Compile>
<Compile Include="SpaceSettingsExchangeHostedEdition.ascx.cs">
<DependentUpon>SpaceSettingsExchangeHostedEdition.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="SpaceSettingsExchangeHostedEdition.ascx.designer.cs">
<DependentUpon>SpaceSettingsExchangeHostedEdition.ascx</DependentUpon>
</Compile>
<Compile Include="SettingsExchangeHostedEditionPolicy.ascx.cs">
<DependentUpon>SettingsExchangeHostedEditionPolicy.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="SettingsExchangeHostedEditionPolicy.ascx.designer.cs">
<DependentUpon>SettingsExchangeHostedEditionPolicy.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\AddOrganizationDomain.ascx.cs">
<DependentUpon>AddOrganizationDomain.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\AddOrganizationDomain.ascx.designer.cs">
<DependentUpon>AddOrganizationDomain.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\CreateOrganization.ascx.cs">
<DependentUpon>CreateOrganization.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\CreateOrganization.ascx.designer.cs">
<DependentUpon>CreateOrganization.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\DeleteOrganization.ascx.cs">
<DependentUpon>DeleteOrganization.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\DeleteOrganization.ascx.designer.cs">
<DependentUpon>DeleteOrganization.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\OrganizationDetails.ascx.cs">
<DependentUpon>OrganizationDetails.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\OrganizationDetails.ascx.designer.cs">
<DependentUpon>OrganizationDetails.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\UpdateOrganizationCatchAll.ascx.cs">
<DependentUpon>UpdateOrganizationCatchAll.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\UpdateOrganizationCatchAll.ascx.designer.cs">
<DependentUpon>UpdateOrganizationCatchAll.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\UpdateOrganizationQuotas.ascx.cs">
<DependentUpon>UpdateOrganizationQuotas.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\UpdateOrganizationQuotas.ascx.designer.cs">
<DependentUpon>UpdateOrganizationQuotas.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeHostedEdition\UpdateOrganizationServicePlan.ascx.cs">
<DependentUpon>UpdateOrganizationServicePlan.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ExchangeHostedEdition\UpdateOrganizationServicePlan.ascx.designer.cs">
<DependentUpon>UpdateOrganizationServicePlan.ascx</DependentUpon>
</Compile>
<Compile Include="ExchangeServer\ExchangeMailboxMobile.ascx.cs">
<DependentUpon>ExchangeMailboxMobile.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -3804,17 +3734,7 @@
<Content Include="VPSForPC\VpsToolsDeleteServer.ascx" />
<Content Include="VPSForPC\VpsToolsReinstallServer.ascx" />
<Content Include="ProviderControls\HyperVForPrivateCloud_Settings.ascx" />
<Content Include="SettingsExchangeHostedEditionOrganizationSummary.ascx" />
<Content Include="SetupControlPanelAccounts.ascx" />
<Content Include="SpaceSettingsExchangeHostedEdition.ascx" />
<Content Include="SettingsExchangeHostedEditionPolicy.ascx" />
<Content Include="ExchangeHostedEdition\AddOrganizationDomain.ascx" />
<Content Include="ExchangeHostedEdition\CreateOrganization.ascx" />
<Content Include="ExchangeHostedEdition\DeleteOrganization.ascx" />
<Content Include="ExchangeHostedEdition\OrganizationDetails.ascx" />
<Content Include="ExchangeHostedEdition\UpdateOrganizationCatchAll.ascx" />
<Content Include="ExchangeHostedEdition\UpdateOrganizationQuotas.ascx" />
<Content Include="ExchangeHostedEdition\UpdateOrganizationServicePlan.ascx" />
<Content Include="LoginForgotPassword.ascx" />
<Content Include="ProviderControls\Exchange2010SP1_Settings.ascx" />
<Content Include="UserControls\CalendarControl.ascx" />
@ -4768,27 +4688,6 @@
<Content Include="ProviderControls\App_LocalResources\Exchange2010SP1_Settings.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\AddOrganizationDomain.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\UpdateOrganizationServicePlan.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\CreateOrganization.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\DeleteOrganization.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\OrganizationDetails.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\UpdateOrganizationCatchAll.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="ExchangeHostedEdition\App_LocalResources\UpdateOrganizationQuotas.ascx.resx">
<SubType>Designer</SubType>
</Content>
<Content Include="App_LocalResources\SettingsExchangeHostedEditionPolicy.ascx.resx">
<SubType>Designer</SubType>
</Content>