Significant amount of changes to hosted organizations and exchange:
Exchange 2010 SP2 provisioning separated through a new provider Exchange 2010 SP2 now compliant with product group guidelines Support for Database Availability Group Fixed Distribution List view scope to only tenant Consumer support (individual mailboxes as hotmail) added Mailbox configuration moved to mailbox plans concept CN creation is now based on UPN sAMAccountName generation revised and decoupled from tenant name 2007 (ACL Based), 2010 (ACL Bases), 2010 SP2 (ABP) supported Automated Hosted Organization provisioning added to create hosting space Enterprise Server webservice extended with ImportMethod Mobile tab fixed Added more information to users listview
This commit is contained in:
parent
2f8a580846
commit
50f2c43315
194 changed files with 12994 additions and 9755 deletions
|
@ -29,7 +29,7 @@ CREATE TABLE [dbo].[ExchangeAccounts](
|
||||||
[AccountID] [int] IDENTITY(1,1) NOT NULL,
|
[AccountID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
[ItemID] [int] NOT NULL,
|
[ItemID] [int] NOT NULL,
|
||||||
[AccountType] [int] NOT NULL,
|
[AccountType] [int] NOT NULL,
|
||||||
[AccountName] [nvarchar](20) COLLATE Latin1_General_CI_AS NOT NULL,
|
[AccountName] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL,
|
||||||
[DisplayName] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL,
|
[DisplayName] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL,
|
||||||
[PrimaryEmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NULL,
|
[PrimaryEmailAddress] [nvarchar](300) COLLATE Latin1_General_CI_AS NULL,
|
||||||
[MailEnabledPublicFolder] [bit] NULL,
|
[MailEnabledPublicFolder] [bit] NULL,
|
||||||
|
@ -37,6 +37,8 @@ CREATE TABLE [dbo].[ExchangeAccounts](
|
||||||
[SamAccountName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
|
[SamAccountName] [nvarchar](100) COLLATE Latin1_General_CI_AS NULL,
|
||||||
[AccountPassword] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
|
[AccountPassword] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
|
||||||
[CreatedDate] [datetime] NOT NULL,
|
[CreatedDate] [datetime] NOT NULL,
|
||||||
|
[MailboxPlanId] [int] NULL,
|
||||||
|
[SubscriberNumber] [nvarchar] (32) COLLATE Latin1_General_CI_AS NULL,
|
||||||
CONSTRAINT [PK_ExchangeAccounts] PRIMARY KEY CLUSTERED
|
CONSTRAINT [PK_ExchangeAccounts] PRIMARY KEY CLUSTERED
|
||||||
(
|
(
|
||||||
[AccountID] ASC
|
[AccountID] ASC
|
||||||
|
@ -54,6 +56,32 @@ SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE [dbo].[ExchangeMailboxPlans](
|
||||||
|
[MailboxPlanId] [int] IDENTITY(1,1) NOT NULL,
|
||||||
|
[ItemID] [int] NOT NULL,
|
||||||
|
[MailboxPlan] [nvarchar](300) COLLATE Latin1_General_CI_AS NOT NULL,
|
||||||
|
[EnableActiveSync] [bit] NOT NULL,
|
||||||
|
[EnableIMAP] [bit] NOT NULL,
|
||||||
|
[EnableMAPI] [bit] NOT NULL,
|
||||||
|
[EnableOWA] [bit] NOT NULL,
|
||||||
|
[EnablePOP] [bit] NOT NULL,
|
||||||
|
[IsDefault] [bit] NOT NULL,
|
||||||
|
[IssueWarningPct] [int] NOT NULL,
|
||||||
|
[KeepDeletedItemsDays] [int] NOT NULL,
|
||||||
|
[MailboxSizeMB] [int] NOT NULL,
|
||||||
|
[MaxReceiveMessageSizeKB] [int] NOT NULL,
|
||||||
|
[MaxRecipients] [int] NOT NULL,
|
||||||
|
[MaxSendMessageSizeKB] [int] NOT NULL,
|
||||||
|
[ProhibitSendPct] [int] NOT NULL,
|
||||||
|
[ProhibitSendReceivePct] [int] NOT NULL,
|
||||||
|
[HideFromAddressBook] [bit] NOT NULL,
|
||||||
|
CONSTRAINT [PK_ExchangeMailboxPlans] PRIMARY KEY CLUSTERED
|
||||||
|
(
|
||||||
|
[MailboxPlanId] ASC
|
||||||
|
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||||
|
) ON [PRIMARY]
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -80,7 +108,8 @@ SELECT
|
||||||
AccountName,
|
AccountName,
|
||||||
DisplayName,
|
DisplayName,
|
||||||
PrimaryEmailAddress,
|
PrimaryEmailAddress,
|
||||||
MailEnabledPublicFolder
|
MailEnabledPublicFolder,
|
||||||
|
SubscriberNumber
|
||||||
FROM
|
FROM
|
||||||
ExchangeAccounts
|
ExchangeAccounts
|
||||||
WHERE
|
WHERE
|
||||||
|
@ -109,6 +138,7 @@ END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
@ -150,21 +180,71 @@ CREATE PROCEDURE [dbo].[GetExchangeAccounts]
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
SELECT
|
SELECT
|
||||||
AccountID,
|
E.AccountID,
|
||||||
ItemID,
|
E.ItemID,
|
||||||
AccountType,
|
E.AccountType,
|
||||||
AccountName,
|
E.AccountName,
|
||||||
DisplayName,
|
E.DisplayName,
|
||||||
PrimaryEmailAddress,
|
E.PrimaryEmailAddress,
|
||||||
MailEnabledPublicFolder
|
E.MailEnabledPublicFolder,
|
||||||
|
E.MailboxPlanId,
|
||||||
|
P.MailboxPlan,
|
||||||
|
E.SubscriberNumber
|
||||||
FROM
|
FROM
|
||||||
ExchangeAccounts
|
ExchangeAccounts AS E
|
||||||
|
INNER JOIN ExchangeMailboxPlans AS P ON E.MailboxPlanId = P.MailboxPlanId
|
||||||
WHERE
|
WHERE
|
||||||
ItemID = @ItemID AND
|
E.ItemID = @ItemID AND
|
||||||
(AccountType = @AccountType OR @AccountType IS NULL)
|
(E.AccountType = @AccountType OR @AccountType IS NULL)
|
||||||
ORDER BY DisplayName
|
ORDER BY DisplayName
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetExchangeAccountByAccountName]
|
||||||
|
(
|
||||||
|
@ItemID int,
|
||||||
|
@AccountName nvarchar(300)
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
E.AccountID,
|
||||||
|
E.ItemID,
|
||||||
|
E.AccountType,
|
||||||
|
E.AccountName,
|
||||||
|
E.DisplayName,
|
||||||
|
E.PrimaryEmailAddress,
|
||||||
|
E.MailEnabledPublicFolder,
|
||||||
|
E.MailboxManagerActions,
|
||||||
|
E.SamAccountName,
|
||||||
|
E.AccountPassword,
|
||||||
|
E.MailboxPlanId,
|
||||||
|
P.MailboxPlan,
|
||||||
|
E.SubscriberNumber
|
||||||
|
FROM
|
||||||
|
ExchangeAccounts AS E
|
||||||
|
LEFT OUTER JOIN ExchangeMailboxPlans AS P ON E.MailboxPlanId = P.MailboxPlanId
|
||||||
|
WHERE
|
||||||
|
E.ItemID = @ItemID AND
|
||||||
|
E.AccountName = @AccountName
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -231,21 +311,25 @@ CREATE PROCEDURE [dbo].[GetExchangeAccount]
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
SELECT
|
SELECT
|
||||||
AccountID,
|
E.AccountID,
|
||||||
ItemID,
|
E.ItemID,
|
||||||
AccountType,
|
E.AccountType,
|
||||||
AccountName,
|
E.AccountName,
|
||||||
DisplayName,
|
E.DisplayName,
|
||||||
PrimaryEmailAddress,
|
E.PrimaryEmailAddress,
|
||||||
MailEnabledPublicFolder,
|
E.MailEnabledPublicFolder,
|
||||||
MailboxManagerActions,
|
E.MailboxManagerActions,
|
||||||
SamAccountName,
|
E.SamAccountName,
|
||||||
AccountPassword
|
E.AccountPassword,
|
||||||
|
E.MailboxPlanId,
|
||||||
|
P.MailboxPlan,
|
||||||
|
E.SubscriberNumber
|
||||||
FROM
|
FROM
|
||||||
ExchangeAccounts
|
ExchangeAccounts AS E
|
||||||
|
LEFT OUTER JOIN ExchangeMailboxPlans AS P ON E.MailboxPlanId = P.MailboxPlanId
|
||||||
WHERE
|
WHERE
|
||||||
ItemID = @ItemID AND
|
E.ItemID = @ItemID AND
|
||||||
AccountID = @AccountID
|
E.AccountID = @AccountID
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
@ -311,14 +395,14 @@ GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE PROCEDURE ExchangeAccountExists
|
CREATE PROCEDURE [dbo].[ExchangeAccountExists]
|
||||||
(
|
(
|
||||||
@AccountName nvarchar(20),
|
@AccountName nvarchar(20),
|
||||||
@Exists bit OUTPUT
|
@Exists bit OUTPUT
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
SET @Exists = 0
|
SET @Exists = 0
|
||||||
IF EXISTS(SELECT * FROM ExchangeAccounts WHERE AccountName = @AccountName)
|
IF EXISTS(SELECT * FROM ExchangeAccounts WHERE sAMAccountName LIKE '%\'+@AccountName)
|
||||||
BEGIN
|
BEGIN
|
||||||
SET @Exists = 1
|
SET @Exists = 1
|
||||||
END
|
END
|
||||||
|
@ -352,6 +436,10 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -936,7 +1024,7 @@ GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE PROCEDURE SearchExchangeAccounts
|
CREATE PROCEDURE [dbo].[SearchExchangeAccounts]
|
||||||
(
|
(
|
||||||
@ActorID int,
|
@ActorID int,
|
||||||
@ItemID int,
|
@ItemID int,
|
||||||
|
@ -986,7 +1074,8 @@ SELECT
|
||||||
EA.AccountName,
|
EA.AccountName,
|
||||||
EA.DisplayName,
|
EA.DisplayName,
|
||||||
EA.PrimaryEmailAddress,
|
EA.PrimaryEmailAddress,
|
||||||
EA.MailEnabledPublicFolder
|
EA.MailEnabledPublicFolder,
|
||||||
|
EA.SubscriberNumber
|
||||||
FROM ExchangeAccounts AS EA
|
FROM ExchangeAccounts AS EA
|
||||||
WHERE ' + @condition
|
WHERE ' + @condition
|
||||||
|
|
||||||
|
@ -1026,6 +1115,7 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
@ -1080,6 +1170,10 @@ END
|
||||||
IF @SortColumn IS NULL OR @SortColumn = ''
|
IF @SortColumn IS NULL OR @SortColumn = ''
|
||||||
SET @SortColumn = 'EA.DisplayName ASC'
|
SET @SortColumn = 'EA.DisplayName ASC'
|
||||||
|
|
||||||
|
DECLARE @joincondition nvarchar(700)
|
||||||
|
SET @joincondition = ',P.MailboxPlan FROM ExchangeAccounts AS EA
|
||||||
|
LEFT OUTER JOIN ExchangeMailboxPlans AS P ON EA.MailboxPlanId = P.MailboxPlanId'
|
||||||
|
|
||||||
DECLARE @sql nvarchar(3500)
|
DECLARE @sql nvarchar(3500)
|
||||||
|
|
||||||
set @sql = '
|
set @sql = '
|
||||||
|
@ -1094,9 +1188,10 @@ WITH Accounts AS (
|
||||||
EA.AccountName,
|
EA.AccountName,
|
||||||
EA.DisplayName,
|
EA.DisplayName,
|
||||||
EA.PrimaryEmailAddress,
|
EA.PrimaryEmailAddress,
|
||||||
EA.MailEnabledPublicFolder
|
EA.MailEnabledPublicFolder,
|
||||||
FROM ExchangeAccounts AS EA
|
EA.MailboxPlanId,
|
||||||
WHERE ' + @condition + '
|
EA.SubscriberNumber ' + @joincondition +
|
||||||
|
' WHERE ' + @condition + '
|
||||||
)
|
)
|
||||||
|
|
||||||
SELECT * FROM Accounts
|
SELECT * FROM Accounts
|
||||||
|
@ -1118,6 +1213,7 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
SET ANSI_NULLS ON
|
SET ANSI_NULLS ON
|
||||||
GO
|
GO
|
||||||
|
@ -1407,13 +1503,15 @@ CREATE PROCEDURE [dbo].[AddExchangeAccount]
|
||||||
@AccountID int OUTPUT,
|
@AccountID int OUTPUT,
|
||||||
@ItemID int,
|
@ItemID int,
|
||||||
@AccountType int,
|
@AccountType int,
|
||||||
@AccountName nvarchar(20),
|
@AccountName nvarchar(300),
|
||||||
@DisplayName nvarchar(300),
|
@DisplayName nvarchar(300),
|
||||||
@PrimaryEmailAddress nvarchar(300),
|
@PrimaryEmailAddress nvarchar(300),
|
||||||
@MailEnabledPublicFolder bit,
|
@MailEnabledPublicFolder bit,
|
||||||
@MailboxManagerActions varchar(200),
|
@MailboxManagerActions varchar(200),
|
||||||
@SamAccountName nvarchar(100),
|
@SamAccountName nvarchar(100),
|
||||||
@AccountPassword nvarchar(200)
|
@AccountPassword nvarchar(200),
|
||||||
|
@MailboxPlanId int,
|
||||||
|
@SubscriberNumber nvarchar(32)
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
|
|
||||||
|
@ -1427,7 +1525,9 @@ INSERT INTO ExchangeAccounts
|
||||||
MailEnabledPublicFolder,
|
MailEnabledPublicFolder,
|
||||||
MailboxManagerActions,
|
MailboxManagerActions,
|
||||||
SamAccountName,
|
SamAccountName,
|
||||||
AccountPassword
|
AccountPassword,
|
||||||
|
MailboxPlanId,
|
||||||
|
SubscriberNumber
|
||||||
)
|
)
|
||||||
VALUES
|
VALUES
|
||||||
(
|
(
|
||||||
|
@ -1439,7 +1539,9 @@ VALUES
|
||||||
@MailEnabledPublicFolder,
|
@MailEnabledPublicFolder,
|
||||||
@MailboxManagerActions,
|
@MailboxManagerActions,
|
||||||
@SamAccountName,
|
@SamAccountName,
|
||||||
@AccountPassword
|
@AccountPassword,
|
||||||
|
@MailboxPlanId,
|
||||||
|
@SubscriberNumber
|
||||||
)
|
)
|
||||||
|
|
||||||
SET @AccountID = SCOPE_IDENTITY()
|
SET @AccountID = SCOPE_IDENTITY()
|
||||||
|
@ -1475,6 +1577,7 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
@ -3538,9 +3641,9 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (75, 1, 8, N'OS.ExtraApplications', N'Extra Application Packs', 1, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (75, 1, 8, N'OS.ExtraApplications', N'Extra Application Packs', 1, 0, NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (77, 12, 2, N'Exchange2007.DiskSpace', N'Organization Disk Space, MB', 3, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (77, 12, 2, N'Exchange2007.DiskSpace', N'Organization Disk Space, MB', 21, 0, NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (78, 12, 3, N'Exchange2007.Mailboxes', N'Mailboxes per Organization', 3, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (78, 12, 3, N'Exchange2007.Mailboxes', N'Mailboxes per Organization', 2, 0, NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (79, 12, 4, N'Exchange2007.Contacts', N'Contacts per Organization', 3, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (79, 12, 4, N'Exchange2007.Contacts', N'Contacts per Organization', 3, 0, NULL)
|
||||||
GO
|
GO
|
||||||
|
@ -3560,16 +3663,6 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (88, 12, 8, N'Exchange2007.MailEnabledPublicFolders', N'Mail Enabled Public Folders Allowed', 1, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (88, 12, 8, N'Exchange2007.MailEnabledPublicFolders', N'Mail Enabled Public Folders Allowed', 1, 0, NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (89, 12, 10, N'Exchange2007.POP3Enabled', N'POP3 Enabled by default', 1, 0, NULL)
|
|
||||||
GO
|
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (90, 12, 12, N'Exchange2007.IMAPEnabled', N'IMAP Enabled by default', 1, 0, NULL)
|
|
||||||
GO
|
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (91, 12, 14, N'Exchange2007.OWAEnabled', N'OWA Enabled by default', 1, 0, NULL)
|
|
||||||
GO
|
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (92, 12, 16, N'Exchange2007.MAPIEnabled', N'MAPI Enabled by default', 1, 0, NULL)
|
|
||||||
GO
|
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (93, 12, 18, N'Exchange2007.ActiveSyncEnabled', N'ActiveSync Enabled by default', 1, 0, NULL)
|
|
||||||
GO
|
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (94, 2, 17, N'Web.ColdFusion', N'ColdFusion', 1, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (94, 2, 17, N'Web.ColdFusion', N'ColdFusion', 1, 0, NULL)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (95, 2, 1, N'Web.WebAppGallery', N'Web Application Gallery', 1, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (95, 2, 1, N'Web.WebAppGallery', N'Web Application Gallery', 1, 0, NULL)
|
||||||
|
@ -3602,7 +3695,7 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (205, 13, 1, N'HostedSolution.Organizations', N'Organizations', 2, 0, 29)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (205, 13, 1, N'HostedSolution.Organizations', N'Organizations', 2, 0, 29)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (206, 13, 2, N'HostedSolution.Users', N'Users', 3, 0, 30)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (206, 13, 2, N'HostedSolution.Users', N'Users', 2, 0, 30)
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (207, 13, 3, N'HostedSolution.Domains', N'Domains per Organizations', 3, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (207, 13, 3, N'HostedSolution.Domains', N'Domains per Organizations', 3, 0, NULL)
|
||||||
GO
|
GO
|
||||||
|
@ -3748,6 +3841,16 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (363, 40, 12, N'VPSForPC.Bandwidth', N'Monthly bandwidth, GB', 2, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (363, 40, 12, N'VPSForPC.Bandwidth', N'Monthly bandwidth, GB', 2, 0, NULL)
|
||||||
GO
|
GO
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (364, 12, 19, N'Exchange2007.KeepDeletedItemsDays', N'Keep Deleted Items (days)', 3, 0, NULL)
|
||||||
|
GO
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (365, 12, 20, N'Exchange2007.MaxRecipients', N'Maximum Recipients', 3, 0, NULL)
|
||||||
|
GO
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (366, 12, 21, N'Exchange2007.MaxSendMessageSizeKB', N'Maximum Send Message Size (Kb)', 3, 0, NULL)
|
||||||
|
GO
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (367, 12, 22, N'Exchange2007.MaxReceiveMessageSizeKB', N'Maximum Receive Message Size (Kb)', 3, 0, NULL)
|
||||||
|
GO
|
||||||
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (368, 12, 1, N'Exchange2007.IsConsumer',N'Is Consumer Organization',1, 0 , NULL)
|
||||||
|
GO
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (400, 20, 3, N'HostedSharePoint.UseSharedSSL', N'Use shared SSL Root', 1, 0, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (400, 20, 3, N'HostedSharePoint.UseSharedSSL', N'Use shared SSL Root', 1, 0, NULL)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
@ -5866,7 +5969,7 @@ SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
CREATE TABLE [dbo].[ExchangeOrganizations](
|
CREATE TABLE [dbo].[ExchangeOrganizations](
|
||||||
[ItemID] [int] NOT NULL,
|
[ItemID] [int] NOT NULL,
|
||||||
[OrganizationID] [nvarchar](10) COLLATE Latin1_General_CI_AS NOT NULL,
|
[OrganizationID] [nvarchar](128) COLLATE Latin1_General_CI_AS NOT NULL,
|
||||||
CONSTRAINT [PK_ExchangeOrganizations] PRIMARY KEY CLUSTERED
|
CONSTRAINT [PK_ExchangeOrganizations] PRIMARY KEY CLUSTERED
|
||||||
(
|
(
|
||||||
[ItemID] ASC
|
[ItemID] ASC
|
||||||
|
@ -5980,8 +6083,10 @@ CREATE PROCEDURE DeleteExchangeOrganization
|
||||||
@ItemID int
|
@ItemID int
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
DELETE FROM ExchangeOrganizations
|
BEGIN TRAN
|
||||||
WHERE ItemID = @ItemID
|
DELETE FROM ExchangeMailboxPlans WHERE ItemID = @ItemID
|
||||||
|
DELETE FROM ExchangeOrganizations WHERE ItemID = @ItemID
|
||||||
|
COMMIT TRAN
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
@ -6053,7 +6158,7 @@ GO
|
||||||
CREATE PROCEDURE AddExchangeOrganization
|
CREATE PROCEDURE AddExchangeOrganization
|
||||||
(
|
(
|
||||||
@ItemID int,
|
@ItemID int,
|
||||||
@OrganizationID nvarchar(10)
|
@OrganizationID nvarchar(128)
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
|
|
||||||
|
@ -6241,7 +6346,8 @@ SELECT
|
||||||
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts,
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 2 AND ItemID = @ItemID) AS CreatedContacts,
|
||||||
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists,
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 3 AND ItemID = @ItemID) AS CreatedDistributionLists,
|
||||||
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders,
|
(SELECT COUNT(*) FROM ExchangeAccounts WHERE AccountType = 4 AND ItemID = @ItemID) AS CreatedPublicFolders,
|
||||||
(SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains
|
(SELECT COUNT(*) FROM ExchangeOrganizationDomains WHERE ItemID = @ItemID) AS CreatedDomains,
|
||||||
|
(SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS A INNER JOIN ExchangeMailboxPlans AS B ON A.MailboxPlanId = B.MailboxPlanId WHERE A.ItemID=@ItemID) AS UsedDiskSpace
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
@ -6272,7 +6378,6 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
@ -6611,18 +6716,26 @@ GO
|
||||||
CREATE PROCEDURE [dbo].[UpdateExchangeAccount]
|
CREATE PROCEDURE [dbo].[UpdateExchangeAccount]
|
||||||
(
|
(
|
||||||
@AccountID int,
|
@AccountID int,
|
||||||
@AccountName nvarchar(20),
|
@AccountName nvarchar(300),
|
||||||
@DisplayName nvarchar(300),
|
@DisplayName nvarchar(300),
|
||||||
@PrimaryEmailAddress nvarchar(300),
|
@PrimaryEmailAddress nvarchar(300),
|
||||||
@AccountType int,
|
@AccountType int,
|
||||||
@SamAccountName nvarchar(100),
|
@SamAccountName nvarchar(100),
|
||||||
@MailEnabledPublicFolder bit,
|
@MailEnabledPublicFolder bit,
|
||||||
@MailboxManagerActions varchar(200),
|
@MailboxManagerActions varchar(200),
|
||||||
@Password varchar(200)
|
@Password varchar(200),
|
||||||
|
@MailboxPlanId int,
|
||||||
|
@SubscriberNumber varchar(32)
|
||||||
)
|
)
|
||||||
AS
|
AS
|
||||||
|
|
||||||
BEGIN TRAN
|
BEGIN TRAN
|
||||||
|
|
||||||
|
IF (@MailboxPlanId = -1)
|
||||||
|
BEGIN
|
||||||
|
SET @MailboxPlanId = NULL
|
||||||
|
END
|
||||||
|
|
||||||
UPDATE ExchangeAccounts SET
|
UPDATE ExchangeAccounts SET
|
||||||
AccountName = @AccountName,
|
AccountName = @AccountName,
|
||||||
DisplayName = @DisplayName,
|
DisplayName = @DisplayName,
|
||||||
|
@ -6630,7 +6743,9 @@ UPDATE ExchangeAccounts SET
|
||||||
MailEnabledPublicFolder = @MailEnabledPublicFolder,
|
MailEnabledPublicFolder = @MailEnabledPublicFolder,
|
||||||
MailboxManagerActions = @MailboxManagerActions,
|
MailboxManagerActions = @MailboxManagerActions,
|
||||||
AccountType =@AccountType,
|
AccountType =@AccountType,
|
||||||
SamAccountName = @SamAccountName
|
SamAccountName = @SamAccountName,
|
||||||
|
MailboxPlanId = @MailboxPlanId,
|
||||||
|
SubscriberNumber = @SubscriberNumber
|
||||||
|
|
||||||
WHERE
|
WHERE
|
||||||
AccountID = @AccountID
|
AccountID = @AccountID
|
||||||
|
@ -6667,6 +6782,10 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
@ -8899,7 +9018,8 @@ SELECT
|
||||||
EA.AccountType,
|
EA.AccountType,
|
||||||
EA.AccountName,
|
EA.AccountName,
|
||||||
EA.DisplayName,
|
EA.DisplayName,
|
||||||
EA.PrimaryEmailAddress
|
EA.PrimaryEmailAddress,
|
||||||
|
EA.SubscriberNumber
|
||||||
FROM ExchangeAccounts AS EA
|
FROM ExchangeAccounts AS EA
|
||||||
WHERE ' + @condition
|
WHERE ' + @condition
|
||||||
|
|
||||||
|
@ -8936,6 +9056,8 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -20551,7 +20673,7 @@ GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE PROCEDURE GetPackages
|
CREATE PROCEDURE [dbo].[GetPackages]
|
||||||
(
|
(
|
||||||
@ActorID int,
|
@ActorID int,
|
||||||
@UserID int
|
@UserID int
|
||||||
|
@ -20590,8 +20712,7 @@ INNER JOIN Users AS U ON P.UserID = U.UserID
|
||||||
INNER JOIN Servers AS S ON P.ServerID = S.ServerID
|
INNER JOIN Servers AS S ON P.ServerID = S.ServerID
|
||||||
INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID
|
INNER JOIN HostingPlans AS HP ON P.PlanID = HP.PlanID
|
||||||
WHERE
|
WHERE
|
||||||
P.UserID <> @UserID
|
P.UserID = @UserID
|
||||||
AND dbo.CheckUserParent(@UserID, P.UserID) = 1
|
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
@ -23257,6 +23378,8 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
|
||||||
GO
|
GO
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (400, 40, N'HyperVForPC', N'Microsoft Hyper-V For Private Cloud', N'WebsitePanel.Providers.VirtualizationForPC.HyperVForPC, WebsitePanel.Providers.VirtualizationForPC.HyperVForPC', N'HyperVForPrivateCloud', 1)
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (400, 40, N'HyperVForPC', N'Microsoft Hyper-V For Private Cloud', N'WebsitePanel.Providers.VirtualizationForPC.HyperVForPC, WebsitePanel.Providers.VirtualizationForPC.HyperVForPC', N'HyperVForPrivateCloud', 1)
|
||||||
GO
|
GO
|
||||||
|
INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(90, 12, N'Exchange2010SP2', N'Hosted Microsoft Exchange Server 2010 SP2', N'WebsitePanel.Providers.HostedSolution.Exchange2010SP2, WebsitePanel.Providers.HostedSolution', N'Exchange', 1)
|
||||||
|
GO
|
||||||
SET ANSI_NULLS ON
|
SET ANSI_NULLS ON
|
||||||
GO
|
GO
|
||||||
SET QUOTED_IDENTIFIER ON
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
@ -25738,21 +25861,27 @@ AS
|
||||||
INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
|
INNER JOIN PackagesTreeCache AS PT ON PIP.PackageID = PT.PackageID
|
||||||
WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3)
|
WHERE PT.ParentPackageID = @PackageID AND IP.PoolID = 3)
|
||||||
ELSE IF @QuotaID = 319 -- BB Users
|
ELSE IF @QuotaID = 319 -- BB Users
|
||||||
SET @Result = (SELECT COUNT(ea.AccountID)
|
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts ea
|
||||||
FROM
|
INNER JOIN BlackBerryUsers bu ON ea.AccountID = bu.AccountID
|
||||||
ExchangeAccounts ea
|
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||||
INNER JOIN
|
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||||
BlackBerryUsers bu
|
WHERE pt.ParentPackageID = @PackageID)
|
||||||
ON
|
ELSE IF @QuotaID = 206 -- HostedSolution.Users
|
||||||
ea.AccountID = bu.AccountID
|
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||||
INNER JOIN
|
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||||
ServiceItems si
|
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||||
ON
|
WHERE pt.ParentPackageID = @PackageID AND ea.AccountType IN (1,5,6,7))
|
||||||
ea.ItemID = si.ItemID
|
ELSE IF @QuotaID = 78 -- Exchange2007.Mailboxes
|
||||||
INNER JOIN
|
SET @Result = (SELECT COUNT(ea.AccountID) FROM ExchangeAccounts AS ea
|
||||||
PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||||
WHERE
|
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||||
pt.ParentPackageID = @PackageID)
|
WHERE pt.ParentPackageID = @PackageID AND ea.MailboxPlanId IS NOT NULL)
|
||||||
|
ELSE IF @QuotaID = 77 -- Exchange2007.DiskSpace
|
||||||
|
SET @Result = (SELECT SUM(B.MailboxSizeMB) FROM ExchangeAccounts AS ea
|
||||||
|
INNER JOIN ExchangeMailboxPlans AS B ON ea.MailboxPlanId = B.MailboxPlanId
|
||||||
|
INNER JOIN ServiceItems si ON ea.ItemID = si.ItemID
|
||||||
|
INNER JOIN PackagesTreeCache pt ON si.PackageID = pt.PackageID
|
||||||
|
WHERE pt.ParentPackageID = @PackageID)
|
||||||
ELSE
|
ELSE
|
||||||
SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q
|
SET @Result = (SELECT COUNT(SI.ItemID) FROM Quotas AS Q
|
||||||
INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID
|
INNER JOIN ServiceItems AS SI ON SI.ItemTypeID = Q.ItemTypeID
|
||||||
|
@ -25761,14 +25890,10 @@ AS
|
||||||
|
|
||||||
RETURN @Result
|
RETURN @Result
|
||||||
END
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
|
||||||
SET ANSI_NULLS ON
|
|
||||||
GO
|
|
||||||
SET QUOTED_IDENTIFIER ON
|
|
||||||
GO
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -44451,6 +44576,7 @@ EXEC sp_xml_removedocument @idoc
|
||||||
COMMIT TRAN
|
COMMIT TRAN
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -44473,27 +44599,280 @@ RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[AddExchangeMailboxPlan]
|
||||||
|
(
|
||||||
|
@MailboxPlanId int OUTPUT,
|
||||||
|
@ItemID int,
|
||||||
|
@MailboxPlan nvarchar(300),
|
||||||
|
@EnableActiveSync bit,
|
||||||
|
@EnableIMAP bit,
|
||||||
|
@EnableMAPI bit,
|
||||||
|
@EnableOWA bit,
|
||||||
|
@EnablePOP bit,
|
||||||
|
@IsDefault bit,
|
||||||
|
@IssueWarningPct int,
|
||||||
|
@KeepDeletedItemsDays int,
|
||||||
|
@MailboxSizeMB int,
|
||||||
|
@MaxReceiveMessageSizeKB int,
|
||||||
|
@MaxRecipients int,
|
||||||
|
@MaxSendMessageSizeKB int,
|
||||||
|
@ProhibitSendPct int,
|
||||||
|
@ProhibitSendReceivePct int ,
|
||||||
|
@HideFromAddressBook bit
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
INSERT INTO ExchangeMailboxPlans
|
||||||
|
(
|
||||||
|
ItemID,
|
||||||
|
MailboxPlan,
|
||||||
|
EnableActiveSync,
|
||||||
|
EnableIMAP,
|
||||||
|
EnableMAPI,
|
||||||
|
EnableOWA,
|
||||||
|
EnablePOP,
|
||||||
|
IsDefault,
|
||||||
|
IssueWarningPct,
|
||||||
|
KeepDeletedItemsDays,
|
||||||
|
MailboxSizeMB,
|
||||||
|
MaxReceiveMessageSizeKB,
|
||||||
|
MaxRecipients,
|
||||||
|
MaxSendMessageSizeKB,
|
||||||
|
ProhibitSendPct,
|
||||||
|
ProhibitSendReceivePct,
|
||||||
|
HideFromAddressBook
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
@ItemID,
|
||||||
|
@MailboxPlan,
|
||||||
|
@EnableActiveSync,
|
||||||
|
@EnableIMAP,
|
||||||
|
@EnableMAPI,
|
||||||
|
@EnableOWA,
|
||||||
|
@EnablePOP,
|
||||||
|
@IsDefault,
|
||||||
|
@IssueWarningPct,
|
||||||
|
@KeepDeletedItemsDays,
|
||||||
|
@MailboxSizeMB,
|
||||||
|
@MaxReceiveMessageSizeKB,
|
||||||
|
@MaxRecipients,
|
||||||
|
@MaxSendMessageSizeKB,
|
||||||
|
@ProhibitSendPct,
|
||||||
|
@ProhibitSendReceivePct,
|
||||||
|
@HideFromAddressBook
|
||||||
|
)
|
||||||
|
|
||||||
|
SET @MailboxPlanId = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[SetExchangeAccountMailboxplan]
|
||||||
|
(
|
||||||
|
@AccountID int,
|
||||||
|
@MailboxPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
UPDATE ExchangeAccounts SET
|
||||||
|
MailboxPlanId = @MailboxPlanId
|
||||||
|
WHERE
|
||||||
|
AccountID = @AccountID
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[SetOrganizationDefaultExchangeMailboxPlan]
|
||||||
|
(
|
||||||
|
@ItemId int,
|
||||||
|
@MailboxPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
UPDATE ExchangeMailboxPlans SET IsDefault=0 WHERE ItemId=@ItemId
|
||||||
|
UPDATE ExchangeMailboxPlans SET IsDefault=1 WHERE MailboxPlanId=@MailboxPlanId
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetExchangeMailboxPlan]
|
||||||
|
(
|
||||||
|
@MailboxPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
MailboxPlanId,
|
||||||
|
ItemID,
|
||||||
|
MailboxPlan,
|
||||||
|
EnableActiveSync,
|
||||||
|
EnableIMAP,
|
||||||
|
EnableMAPI,
|
||||||
|
EnableOWA,
|
||||||
|
EnablePOP,
|
||||||
|
IsDefault,
|
||||||
|
IssueWarningPct,
|
||||||
|
KeepDeletedItemsDays,
|
||||||
|
MailboxSizeMB,
|
||||||
|
MaxReceiveMessageSizeKB,
|
||||||
|
MaxRecipients,
|
||||||
|
MaxSendMessageSizeKB,
|
||||||
|
ProhibitSendPct,
|
||||||
|
ProhibitSendReceivePct,
|
||||||
|
HideFromAddressBook
|
||||||
|
FROM
|
||||||
|
ExchangeMailboxPlans
|
||||||
|
WHERE
|
||||||
|
MailboxPlanId = @MailboxPlanId
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetExchangeMailboxPlans]
|
||||||
|
(
|
||||||
|
@ItemID int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
MailboxPlanId,
|
||||||
|
ItemID,
|
||||||
|
MailboxPlan,
|
||||||
|
EnableActiveSync,
|
||||||
|
EnableIMAP,
|
||||||
|
EnableMAPI,
|
||||||
|
EnableOWA,
|
||||||
|
EnablePOP,
|
||||||
|
IsDefault,
|
||||||
|
IssueWarningPct,
|
||||||
|
KeepDeletedItemsDays,
|
||||||
|
MailboxSizeMB,
|
||||||
|
MaxReceiveMessageSizeKB,
|
||||||
|
MaxRecipients,
|
||||||
|
MaxSendMessageSizeKB,
|
||||||
|
ProhibitSendPct,
|
||||||
|
ProhibitSendReceivePct,
|
||||||
|
HideFromAddressBook
|
||||||
|
FROM
|
||||||
|
ExchangeMailboxPlans
|
||||||
|
WHERE
|
||||||
|
ItemID = @ItemID
|
||||||
|
ORDER BY MailboxPlan
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[DeleteExchangeMailboxPlan]
|
||||||
|
(
|
||||||
|
@MailboxPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- delete mailboxplan
|
||||||
|
DELETE FROM ExchangeMailboxPlans
|
||||||
|
WHERE MailboxPlanId = @MailboxPlanId
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE [dbo].[ScheduleParameters] WITH CHECK ADD CONSTRAINT [FK_ScheduleParameters_Schedule] FOREIGN KEY([ScheduleID])
|
ALTER TABLE [dbo].[ScheduleParameters] WITH CHECK ADD CONSTRAINT [FK_ScheduleParameters_Schedule] FOREIGN KEY([ScheduleID])
|
||||||
REFERENCES [dbo].[Schedule] ([ScheduleID])
|
REFERENCES [dbo].[Schedule] ([ScheduleID])
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
GO
|
GO
|
||||||
ALTER TABLE [dbo].[ScheduleParameters] CHECK CONSTRAINT [FK_ScheduleParameters_Schedule]
|
ALTER TABLE [dbo].[ScheduleParameters] CHECK CONSTRAINT [FK_ScheduleParameters_Schedule]
|
||||||
GO
|
GO
|
||||||
|
ALTER TABLE dbo.ExchangeMailboxPlans ADD CONSTRAINT
|
||||||
|
IX_ExchangeMailboxPlans UNIQUE NONCLUSTERED
|
||||||
|
(
|
||||||
|
MailboxPlanId
|
||||||
|
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER TABLE dbo.ExchangeMailboxPlans ADD CONSTRAINT
|
||||||
|
FK_ExchangeMailboxPlans_ExchangeOrganizations FOREIGN KEY
|
||||||
|
(
|
||||||
|
ItemID
|
||||||
|
) REFERENCES dbo.ExchangeOrganizations
|
||||||
|
(
|
||||||
|
ItemID
|
||||||
|
) ON UPDATE NO ACTION
|
||||||
|
ON DELETE CASCADE
|
||||||
|
GO
|
||||||
|
|
||||||
|
ALTER TABLE [dbo].[ExchangeAccounts] WITH CHECK ADD CONSTRAINT [FK_ExchangeAccounts_ExchangeMailboxPlans] FOREIGN KEY([MailboxPlanId])
|
||||||
|
REFERENCES [dbo].[ExchangeMailboxPlans] ([MailboxPlanId])
|
||||||
|
GO
|
||||||
|
ALTER TABLE [dbo].[ExchangeAccounts] CHECK CONSTRAINT [FK_ExchangeAccounts_ExchangeMailboxPlans]
|
||||||
|
GO
|
||||||
ALTER TABLE [dbo].[ExchangeAccounts] WITH CHECK ADD CONSTRAINT [FK_ExchangeAccounts_ServiceItems] FOREIGN KEY([ItemID])
|
ALTER TABLE [dbo].[ExchangeAccounts] WITH CHECK ADD CONSTRAINT [FK_ExchangeAccounts_ServiceItems] FOREIGN KEY([ItemID])
|
||||||
REFERENCES [dbo].[ServiceItems] ([ItemID])
|
REFERENCES [dbo].[ServiceItems] ([ItemID])
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
|
@ -44713,6 +45092,12 @@ ON DELETE CASCADE
|
||||||
GO
|
GO
|
||||||
ALTER TABLE [dbo].[ExchangeOrganizations] CHECK CONSTRAINT [FK_ExchangeOrganizations_ServiceItems]
|
ALTER TABLE [dbo].[ExchangeOrganizations] CHECK CONSTRAINT [FK_ExchangeOrganizations_ServiceItems]
|
||||||
GO
|
GO
|
||||||
|
ALTER TABLE [dbo].[ExchangeOrganizations] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizations_ExchangeMailboxPlans] FOREIGN KEY([ItemID])
|
||||||
|
REFERENCES [dbo].[ExchangeMailboxPlans] ([ItemID])
|
||||||
|
ON DELETE CASCADE
|
||||||
|
GO
|
||||||
|
ALTER TABLE [dbo].[ExchangeOrganizations] CHECK CONSTRAINT [FK_ExchangeOrganizations_ExchangeMailboxPlans]
|
||||||
|
GO
|
||||||
ALTER TABLE [dbo].[ExchangeOrganizationDomains] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizationDomains_ServiceItems] FOREIGN KEY([ItemID])
|
ALTER TABLE [dbo].[ExchangeOrganizationDomains] WITH CHECK ADD CONSTRAINT [FK_ExchangeOrganizationDomains_ServiceItems] FOREIGN KEY([ItemID])
|
||||||
REFERENCES [dbo].[ServiceItems] ([ItemID])
|
REFERENCES [dbo].[ServiceItems] ([ItemID])
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
|
@ -45118,3 +45503,4 @@ GO
|
||||||
ALTER TABLE [dbo].[ServiceProperties] CHECK CONSTRAINT [FK_ServiceProperties_Services]
|
ALTER TABLE [dbo].[ServiceProperties] CHECK CONSTRAINT [FK_ServiceProperties_Services]
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -105,6 +105,11 @@ order by rg.groupOrder
|
||||||
public const string EXCHANGE2007_OWAENABLED = "Exchange2007.OWAEnabled"; // OWA Enabled by default
|
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_MAPIENABLED = "Exchange2007.MAPIEnabled"; // MAPI Enabled by default
|
||||||
public const string EXCHANGE2007_ACTIVESYNCENABLED = "Exchange2007.ActiveSyncEnabled"; // ActiveSync Enabled by default
|
public const string EXCHANGE2007_ACTIVESYNCENABLED = "Exchange2007.ActiveSyncEnabled"; // ActiveSync Enabled by default
|
||||||
|
public const string EXCHANGE2007_KEEPDELETEDITEMSDAYS = "Exchange2007.KeepDeletedItemsDays"; // Keep deleted items
|
||||||
|
public const string EXCHANGE2007_MAXRECIPIENTS = "Exchange2007.MaxRecipients"; // Max Recipients
|
||||||
|
public const string EXCHANGE2007_MAXSENDMESSAGESIZEKB = "Exchange2007.MaxSendMessageSizeKB"; // Max Send Message Size
|
||||||
|
public const string EXCHANGE2007_MAXRECEIVEMESSAGESIZEKB = "Exchange2007.MaxReceiveMessageSizeKB"; // Max Receive Message Size
|
||||||
|
public const string EXCHANGE2007_ISCONSUMER = "Exchange2007.IsConsumer"; // Is Consumer Organization
|
||||||
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
|
public const string MSSQL2000_DATABASES = "MsSQL2000.Databases"; // Databases
|
||||||
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
|
public const string MSSQL2000_USERS = "MsSQL2000.Users"; // Users
|
||||||
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size
|
public const string MSSQL2000_MAXDATABASESIZE = "MsSQL2000.MaxDatabaseSize"; // Max Database Size
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -2069,7 +2069,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static int AddExchangeAccount(int itemId, int accountType, string accountName,
|
public static int AddExchangeAccount(int itemId, int accountType, string accountName,
|
||||||
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||||
string mailboxManagerActions, string samAccountName, string accountPassword)
|
string mailboxManagerActions, string samAccountName, string accountPassword, int mailboxPlanId, string subscriberNumber)
|
||||||
{
|
{
|
||||||
SqlParameter outParam = new SqlParameter("@AccountID", SqlDbType.Int);
|
SqlParameter outParam = new SqlParameter("@AccountID", SqlDbType.Int);
|
||||||
outParam.Direction = ParameterDirection.Output;
|
outParam.Direction = ParameterDirection.Output;
|
||||||
|
@ -2087,12 +2087,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@MailEnabledPublicFolder", mailEnabledPublicFolder),
|
new SqlParameter("@MailEnabledPublicFolder", mailEnabledPublicFolder),
|
||||||
new SqlParameter("@MailboxManagerActions", mailboxManagerActions),
|
new SqlParameter("@MailboxManagerActions", mailboxManagerActions),
|
||||||
new SqlParameter("@SamAccountName", samAccountName),
|
new SqlParameter("@SamAccountName", samAccountName),
|
||||||
new SqlParameter("@AccountPassword", accountPassword)
|
new SqlParameter("@AccountPassword", accountPassword),
|
||||||
|
new SqlParameter("@MailboxPlanId", (mailboxPlanId == 0) ? (object)DBNull.Value : (object)mailboxPlanId),
|
||||||
|
new SqlParameter("@SubscriberNumber", (string.IsNullOrEmpty(subscriberNumber) ? (object)DBNull.Value : (object)subscriberNumber))
|
||||||
);
|
);
|
||||||
|
|
||||||
return Convert.ToInt32(outParam.Value);
|
return Convert.ToInt32(outParam.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void AddExchangeAccountEmailAddress(int accountId, string emailAddress)
|
public static void AddExchangeAccountEmailAddress(int accountId, string emailAddress)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
@ -2159,6 +2162,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void DeleteExchangeAccountEmailAddress(int accountId, string emailAddress)
|
public static void DeleteExchangeAccountEmailAddress(int accountId, string emailAddress)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
@ -2257,7 +2261,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
|
public static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
|
||||||
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||||
string mailboxManagerActions, string samAccountName, string accountPassword)
|
string mailboxManagerActions, string samAccountName, string accountPassword, int mailboxPlanId, string subscriberNumber)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteNonQuery(
|
SqlHelper.ExecuteNonQuery(
|
||||||
ConnectionString,
|
ConnectionString,
|
||||||
|
@ -2271,8 +2275,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@MailEnabledPublicFolder", mailEnabledPublicFolder),
|
new SqlParameter("@MailEnabledPublicFolder", mailEnabledPublicFolder),
|
||||||
new SqlParameter("@MailboxManagerActions", mailboxManagerActions),
|
new SqlParameter("@MailboxManagerActions", mailboxManagerActions),
|
||||||
new SqlParameter("@Password", string.IsNullOrEmpty(accountPassword) ? (object)DBNull.Value : (object)accountPassword),
|
new SqlParameter("@Password", string.IsNullOrEmpty(accountPassword) ? (object)DBNull.Value : (object)accountPassword),
|
||||||
new SqlParameter("@SamAccountName", samAccountName)
|
new SqlParameter("@SamAccountName", samAccountName),
|
||||||
|
new SqlParameter("@MailboxPlanId", (mailboxPlanId == 0) ? (object)DBNull.Value : (object)mailboxPlanId),
|
||||||
|
new SqlParameter("@SubscriberNumber", (string.IsNullOrEmpty(subscriberNumber) ? (object)DBNull.Value : (object)subscriberNumber))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2287,6 +2292,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetExchangeAccountByAccountName(int itemId, string accountName)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetExchangeAccountByAccountName",
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@AccountName", accountName)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static IDataReader GetExchangeAccountEmailAddresses(int accountId)
|
public static IDataReader GetExchangeAccountEmailAddresses(int accountId)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteReader(
|
return SqlHelper.ExecuteReader(
|
||||||
|
@ -2398,6 +2414,97 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Exchange Mailbox Plans
|
||||||
|
public static int AddExchangeMailboxPlan(int itemID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
|
||||||
|
bool isDefault, int issueWarningPct, int keepDeletedItemsDays, int mailboxSizeMB, int maxReceiveMessageSizeKB, int maxRecipients,
|
||||||
|
int maxSendMessageSizeKB, int prohibitSendPct, int prohibitSendReceivePct, bool hideFromAddressBook)
|
||||||
|
{
|
||||||
|
SqlParameter outParam = new SqlParameter("@MailboxPlanId", SqlDbType.Int);
|
||||||
|
outParam.Direction = ParameterDirection.Output;
|
||||||
|
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"AddExchangeMailboxPlan",
|
||||||
|
outParam,
|
||||||
|
new SqlParameter("@ItemID", itemID),
|
||||||
|
new SqlParameter("@MailboxPlan", mailboxPlan),
|
||||||
|
new SqlParameter("@EnableActiveSync", enableActiveSync),
|
||||||
|
new SqlParameter("@EnableIMAP", enableIMAP),
|
||||||
|
new SqlParameter("@EnableMAPI", enableMAPI),
|
||||||
|
new SqlParameter("@EnableOWA", enableOWA),
|
||||||
|
new SqlParameter("@EnablePOP", enablePOP),
|
||||||
|
new SqlParameter("@IsDefault", isDefault),
|
||||||
|
new SqlParameter("@IssueWarningPct", issueWarningPct),
|
||||||
|
new SqlParameter("@KeepDeletedItemsDays", keepDeletedItemsDays),
|
||||||
|
new SqlParameter("@MailboxSizeMB", mailboxSizeMB),
|
||||||
|
new SqlParameter("@MaxReceiveMessageSizeKB", maxReceiveMessageSizeKB),
|
||||||
|
new SqlParameter("@MaxRecipients", maxRecipients),
|
||||||
|
new SqlParameter("@MaxSendMessageSizeKB", maxSendMessageSizeKB),
|
||||||
|
new SqlParameter("@ProhibitSendPct", prohibitSendPct),
|
||||||
|
new SqlParameter("@ProhibitSendReceivePct", prohibitSendReceivePct),
|
||||||
|
new SqlParameter("@HideFromAddressBook", hideFromAddressBook)
|
||||||
|
);
|
||||||
|
|
||||||
|
return Convert.ToInt32(outParam.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void DeleteExchangeMailboxPlan(int mailboxPlanId)
|
||||||
|
{
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"DeleteExchangeMailboxPlan",
|
||||||
|
new SqlParameter("@MailboxPlanId", mailboxPlanId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static IDataReader GetExchangeMailboxPlan(int mailboxPlanId)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetExchangeMailboxPlan",
|
||||||
|
new SqlParameter("@MailboxPlanId", mailboxPlanId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IDataReader GetExchangeMailboxPlans(int itemId)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteReader(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"GetExchangeMailboxPlans",
|
||||||
|
new SqlParameter("@ItemID", itemId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"SetOrganizationDefaultExchangeMailboxPlan",
|
||||||
|
new SqlParameter("@ItemID", itemId),
|
||||||
|
new SqlParameter("@MailboxPlanId", mailboxPlanId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetExchangeAccountMailboxPlan(int accountId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
SqlHelper.ExecuteNonQuery(
|
||||||
|
ConnectionString,
|
||||||
|
CommandType.StoredProcedure,
|
||||||
|
"SetExchangeAccountMailboxplan",
|
||||||
|
new SqlParameter("@AccountID", accountId),
|
||||||
|
new SqlParameter("@MailboxPlanId", (mailboxPlanId == 0) ? (object)DBNull.Value : (object)mailboxPlanId)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Organizations
|
#region Organizations
|
||||||
|
|
||||||
public static void DeleteOrganizationUser(int itemId)
|
public static void DeleteOrganizationUser(int itemId)
|
||||||
|
|
|
@ -120,9 +120,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
org.Id = 1;
|
org.Id = 1;
|
||||||
org.OrganizationId = "fabrikam";
|
org.OrganizationId = "fabrikam";
|
||||||
org.Name = "Fabrikam Inc";
|
org.Name = "Fabrikam Inc";
|
||||||
org.IssueWarningKB = 150000;
|
|
||||||
org.ProhibitSendKB = 170000;
|
|
||||||
org.ProhibitSendReceiveKB = 190000;
|
|
||||||
org.KeepDeletedItemsDays = 14;
|
org.KeepDeletedItemsDays = 14;
|
||||||
return org;
|
return org;
|
||||||
}
|
}
|
||||||
|
@ -167,7 +164,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
DataProvider.GetExchangeOrganizationStatistics(itemId));
|
DataProvider.GetExchangeOrganizationStatistics(itemId));
|
||||||
|
|
||||||
// disk space
|
// disk space
|
||||||
stats.UsedDiskSpace = org.DiskSpace;
|
//stats.UsedDiskSpace = org.DiskSpace;
|
||||||
|
|
||||||
// allocated quotas
|
// allocated quotas
|
||||||
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
||||||
|
@ -297,10 +294,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
ExchangeServer mailboxRole = GetExchangeServer(serviceId, org.ServiceId);
|
ExchangeServer mailboxRole = GetExchangeServer(serviceId, org.ServiceId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool authDomainCreated = false;
|
bool authDomainCreated = false;
|
||||||
int itemId = 0;
|
int itemId = 0;
|
||||||
bool organizationExtended = false;
|
bool organizationExtended = false;
|
||||||
|
@ -308,9 +301,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
List<OrganizationDomainName> domains = null;
|
List<OrganizationDomainName> domains = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
||||||
|
|
||||||
// 1) Create Organization (Mailbox)
|
// 1) Create Organization (Mailbox)
|
||||||
// ================================
|
// ================================
|
||||||
Organization exchangeOrganization = mailboxRole.ExtendToExchangeOrganization(org.OrganizationId, org.SecurityGroup);
|
Organization exchangeOrganization = mailboxRole.ExtendToExchangeOrganization(org.OrganizationId,
|
||||||
|
org.SecurityGroup,
|
||||||
|
Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue));
|
||||||
|
|
||||||
organizationExtended = true;
|
organizationExtended = true;
|
||||||
|
|
||||||
exchangeOrganization.OrganizationId = org.OrganizationId;
|
exchangeOrganization.OrganizationId = org.OrganizationId;
|
||||||
|
@ -386,17 +384,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
|
||||||
// organization limits
|
// 4) Add the address book policy (Exchange 2010 SP2
|
||||||
org.IssueWarningKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
//
|
||||||
if (org.IssueWarningKB > 0)
|
// ==========================================
|
||||||
org.IssueWarningKB *= Convert.ToInt32(1024*0.9); //90%
|
Organization OrgTmp = mailboxRole.CreateOrganizationAddressBookPolicy(org.OrganizationId,
|
||||||
org.ProhibitSendKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
org.GlobalAddressList,
|
||||||
if (org.ProhibitSendKB > 0)
|
org.AddressList,
|
||||||
org.ProhibitSendKB *= 1024; //100%
|
org.RoomsAddressList,
|
||||||
org.ProhibitSendReceiveKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
org.OfflineAddressBook);
|
||||||
if (org.ProhibitSendReceiveKB > 0)
|
|
||||||
org.ProhibitSendReceiveKB *= 1024; //100%
|
org.AddressBookPolicy = OrgTmp.AddressBookPolicy;
|
||||||
|
|
||||||
StringDictionary settings = ServerController.GetServiceSettings(serviceId);
|
StringDictionary settings = ServerController.GetServiceSettings(serviceId);
|
||||||
org.KeepDeletedItemsDays = Utils.ParseInt(settings["KeepDeletedItemsDays"], 14);
|
org.KeepDeletedItemsDays = Utils.ParseInt(settings["KeepDeletedItemsDays"], 14);
|
||||||
|
@ -408,7 +406,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// rollback organization creation
|
// rollback organization creation
|
||||||
if (organizationExtended)
|
if (organizationExtended)
|
||||||
mailboxRole.DeleteOrganization(org.OrganizationId, org.DistinguishedName,
|
mailboxRole.DeleteOrganization(org.OrganizationId, org.DistinguishedName,
|
||||||
org.GlobalAddressList, org.AddressList, org.RoomsAddressList, org.OfflineAddressBook, org.SecurityGroup);
|
org.GlobalAddressList, org.AddressList, org.RoomsAddressList, org.OfflineAddressBook, org.SecurityGroup, org.AddressBookPolicy);
|
||||||
|
|
||||||
// rollback domain
|
// rollback domain
|
||||||
if (authDomainCreated)
|
if (authDomainCreated)
|
||||||
|
@ -506,8 +504,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
org.AddressList,
|
org.AddressList,
|
||||||
org.RoomsAddressList,
|
org.RoomsAddressList,
|
||||||
org.OfflineAddressBook,
|
org.OfflineAddressBook,
|
||||||
org.SecurityGroup);
|
org.SecurityGroup,
|
||||||
|
org.AddressBookPolicy);
|
||||||
|
|
||||||
|
|
||||||
return successful ? 0 : BusinessErrorCodes.ERROR_EXCHANGE_DELETE_SOME_PROBLEMS;
|
return successful ? 0 : BusinessErrorCodes.ERROR_EXCHANGE_DELETE_SOME_PROBLEMS;
|
||||||
|
@ -571,9 +569,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
|
||||||
// set limits
|
// set limits
|
||||||
org.IssueWarningKB = issueWarningKB;
|
|
||||||
org.ProhibitSendKB = prohibitSendKB;
|
|
||||||
org.ProhibitSendReceiveKB = prohibitSendReceiveKB;
|
|
||||||
org.KeepDeletedItemsDays = keepDeletedItemsDays;
|
org.KeepDeletedItemsDays = keepDeletedItemsDays;
|
||||||
|
|
||||||
// save organization
|
// save organization
|
||||||
|
@ -665,6 +660,39 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ExchangeMailboxStatistics GetMailboxStatistics(int itemId, int accountId)
|
||||||
|
{
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS");
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||||
|
if (org == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
|
||||||
|
// get stats
|
||||||
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
// load account
|
||||||
|
ExchangeAccount account = GetAccount(itemId, accountId);
|
||||||
|
|
||||||
|
return exchange.GetMailboxStatistics(account.AccountName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static ExchangeItemStatistics[] GetPublicFoldersStatistics(int itemId)
|
public static ExchangeItemStatistics[] GetPublicFoldersStatistics(int itemId)
|
||||||
{
|
{
|
||||||
#region Demo Mode
|
#region Demo Mode
|
||||||
|
@ -1089,18 +1117,19 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private static int AddAccount(int itemId, ExchangeAccountType accountType,
|
private static int AddAccount(int itemId, ExchangeAccountType accountType,
|
||||||
string accountName, string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
string accountName, string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||||
MailboxManagerActions mailboxManagerActions, string samAccountName, string accountPassword)
|
MailboxManagerActions mailboxManagerActions, string samAccountName, string accountPassword, int mailboxPlanId, string subscriberNumber)
|
||||||
{
|
{
|
||||||
return DataProvider.AddExchangeAccount(itemId, (int)accountType,
|
return DataProvider.AddExchangeAccount(itemId, (int)accountType,
|
||||||
accountName, displayName, primaryEmailAddress, mailEnabledPublicFolder,
|
accountName, displayName, primaryEmailAddress, mailEnabledPublicFolder,
|
||||||
mailboxManagerActions.ToString(), samAccountName, CryptoUtils.Encrypt(accountPassword));
|
mailboxManagerActions.ToString(), samAccountName, CryptoUtils.Encrypt(accountPassword), mailboxPlanId, subscriberNumber.Trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void UpdateAccount(ExchangeAccount account)
|
private static void UpdateAccount(ExchangeAccount account)
|
||||||
{
|
{
|
||||||
DataProvider.UpdateExchangeAccount(account.AccountId, account.AccountName, account.AccountType, account.DisplayName,
|
DataProvider.UpdateExchangeAccount(account.AccountId, account.AccountName, account.AccountType, account.DisplayName,
|
||||||
account.PrimaryEmailAddress,account.MailEnabledPublicFolder,
|
account.PrimaryEmailAddress, account.MailEnabledPublicFolder,
|
||||||
account.MailboxManagerActions.ToString(), account.SamAccountName, account.AccountPassword);
|
account.MailboxManagerActions.ToString(), account.SamAccountName, account.AccountPassword, account.MailboxPlanId,
|
||||||
|
(string.IsNullOrEmpty(account.SubscriberNumber) ? null : account.SubscriberNumber.Trim()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DeleteAccount(int itemId, int accountId)
|
private static void DeleteAccount(int itemId, int accountId)
|
||||||
|
@ -1114,28 +1143,40 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private static string BuildAccountName(string orgId, string name)
|
private static string BuildAccountName(string orgId, string name)
|
||||||
{
|
{
|
||||||
int maxLen = 19 - orgId.Length;
|
string accountName = name = name.Replace(" ", "");
|
||||||
|
string CounterStr = "00000";
|
||||||
// try to choose name
|
int counter = 0;
|
||||||
int i = 0;
|
bool bFound = false;
|
||||||
while (true)
|
do
|
||||||
{
|
{
|
||||||
string num = i > 0 ? i.ToString() : "";
|
accountName = genSamLogin(name, CounterStr);
|
||||||
int len = maxLen - num.Length;
|
|
||||||
|
|
||||||
if (name.Length > len)
|
if (!AccountExists(accountName)) bFound = true;
|
||||||
name = name.Substring(0, len);
|
|
||||||
|
|
||||||
string accountName = name + num + "_" + orgId;
|
CounterStr = counter.ToString("d5");
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
while (!bFound);
|
||||||
|
|
||||||
// check if already exists
|
|
||||||
if (!AccountExists(accountName))
|
|
||||||
return accountName;
|
return accountName;
|
||||||
|
}
|
||||||
|
|
||||||
i++;
|
private static string genSamLogin(string login, string strCounter)
|
||||||
|
{
|
||||||
|
int maxLogin = 20;
|
||||||
|
int fullLen = login.Length + strCounter.Length;
|
||||||
|
if (fullLen <= maxLogin)
|
||||||
|
return login + strCounter;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (login.Length - (fullLen - maxLogin) > 0)
|
||||||
|
return login.Substring(0, login.Length - (fullLen - maxLogin)) + strCounter;
|
||||||
|
else return strCounter; // ????
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Account Email Addresses
|
#region Account Email Addresses
|
||||||
|
@ -1378,7 +1419,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
|
private static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
|
||||||
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||||
string mailboxManagerActions, string samAccountName, string accountPassword)
|
string mailboxManagerActions, string samAccountName, string accountPassword, int mailboxPlanId, string subscriberNumber)
|
||||||
{
|
{
|
||||||
DataProvider.UpdateExchangeAccount(accountId,
|
DataProvider.UpdateExchangeAccount(accountId,
|
||||||
accountName,
|
accountName,
|
||||||
|
@ -1388,12 +1429,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
mailEnabledPublicFolder,
|
mailEnabledPublicFolder,
|
||||||
mailboxManagerActions,
|
mailboxManagerActions,
|
||||||
samAccountName,
|
samAccountName,
|
||||||
CryptoUtils.Encrypt(accountPassword));
|
CryptoUtils.Encrypt(accountPassword),
|
||||||
|
mailboxPlanId,
|
||||||
|
(string.IsNullOrEmpty(subscriberNumber) ? null : subscriberNumber.Trim()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static int CreateMailbox(int itemId, int accountId, ExchangeAccountType accountType, string accountName,
|
public static int CreateMailbox(int itemId, int accountId, ExchangeAccountType accountType, string accountName,
|
||||||
string displayName, string name, string domain, string password, bool sendSetupInstructions, string setupInstructionMailAddress)
|
string displayName, string name, string domain, string password, bool sendSetupInstructions, string setupInstructionMailAddress, int mailboxPlanId, string subscriberNumber)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
@ -1401,9 +1444,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
// check mailbox quota
|
// check mailbox quota
|
||||||
OrganizationStatistics orgStats = GetOrganizationStatistics(itemId);
|
OrganizationStatistics orgStats = GetOrganizationStatistics(itemId);
|
||||||
if ((orgStats.AllocatedMailboxes > -1 ) && ( orgStats.CreatedMailboxes >= orgStats.AllocatedMailboxes))
|
if ((orgStats.AllocatedMailboxes > -1) && (orgStats.CreatedMailboxes >= orgStats.AllocatedMailboxes))
|
||||||
return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT;
|
return BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT;
|
||||||
|
|
||||||
|
|
||||||
// place log record
|
// place log record
|
||||||
TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX");
|
TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX");
|
||||||
TaskManager.ItemId = itemId;
|
TaskManager.ItemId = itemId;
|
||||||
|
@ -1411,6 +1455,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
Organization org = null;
|
Organization org = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
accountName = accountName.Trim();
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
name = name.Trim();
|
||||||
|
domain = domain.Trim();
|
||||||
|
|
||||||
|
|
||||||
// load organization
|
// load organization
|
||||||
org = GetOrganization(itemId);
|
org = GetOrganization(itemId);
|
||||||
if (org == null)
|
if (org == null)
|
||||||
|
@ -1425,13 +1475,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
//Create AD user if needed
|
//Create AD user if needed
|
||||||
if (accountId == 0)
|
if (accountId == 0)
|
||||||
{
|
{
|
||||||
accountId = OrganizationController.CreateUser(org.Id, displayName, name, domain, password, enabled, false, string.Empty, out accountName);
|
accountId = OrganizationController.CreateUser(org.Id, displayName, name, domain, password, subscriberNumber, enabled, false, string.Empty, out accountName);
|
||||||
if (accountId > 0)
|
if (accountId > 0)
|
||||||
userCreated = true;
|
userCreated = true;
|
||||||
}
|
}
|
||||||
if (accountId < 0)
|
if (accountId < 0)
|
||||||
return accountId;
|
return accountId;
|
||||||
|
|
||||||
|
// get mailbox settings
|
||||||
|
Organizations orgProxy = OrganizationController.GetOrganizationProxy(org.ServiceId);
|
||||||
|
OrganizationUser retUser = orgProxy.GetUserGeneralSettings(accountName, org.OrganizationId);
|
||||||
|
|
||||||
|
|
||||||
int exchangeServiceId = PackageController.GetPackageServiceId(org.PackageId, ResourceGroups.Exchange);
|
int exchangeServiceId = PackageController.GetPackageServiceId(org.PackageId, ResourceGroups.Exchange);
|
||||||
|
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
@ -1449,23 +1504,47 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
||||||
if (packageCheck < 0) return packageCheck;
|
if (packageCheck < 0) return packageCheck;
|
||||||
|
|
||||||
|
//verify if the mailbox fits in the storage quota
|
||||||
// load package context
|
// load package context
|
||||||
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
||||||
|
|
||||||
|
int maxDiskSpace = -1;
|
||||||
|
int quotaUsed = 0;
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_DISKSPACE)
|
||||||
|
&& cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue > 0)
|
||||||
|
{
|
||||||
|
maxDiskSpace = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||||
|
quotaUsed = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaUsedValue;
|
||||||
|
}
|
||||||
|
|
||||||
string samAccount = exchange.CreateMailEnableUser(email, org.OrganizationId, org.DistinguishedName, accountType, org.Database,
|
ExchangeMailboxPlan plan = GetExchangeMailboxPlan(itemId, mailboxPlanId);
|
||||||
|
if (maxDiskSpace != -1)
|
||||||
|
{
|
||||||
|
if ((quotaUsed + plan.MailboxSizeMB) > (maxDiskSpace))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
}
|
||||||
|
|
||||||
|
//GetServiceSettings
|
||||||
|
StringDictionary primSettings = ServerController.GetServiceSettings(exchangeServiceId);
|
||||||
|
|
||||||
|
string samAccount = exchange.CreateMailEnableUser(email, org.OrganizationId, org.DistinguishedName, accountType, primSettings["mailboxdatabase"],
|
||||||
org.OfflineAddressBook,
|
org.OfflineAddressBook,
|
||||||
accountName,
|
org.AddressBookPolicy,
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_POP3ENABLED),
|
retUser.SamAccountName,
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_IMAPENABLED),
|
plan.EnablePOP,
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_OWAENABLED),
|
plan.EnableIMAP,
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_MAPIENABLED),
|
plan.EnableOWA,
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_ACTIVESYNCENABLED),
|
plan.EnableMAPI,
|
||||||
org.IssueWarningKB,
|
plan.EnableActiveSync,
|
||||||
org.ProhibitSendKB,
|
(int)Math.Round((double)((plan.IssueWarningPct * plan.MailboxSizeMB * 1024) / 100)),
|
||||||
org.ProhibitSendReceiveKB,
|
(int)Math.Round((double)((plan.ProhibitSendPct * plan.MailboxSizeMB * 1024) / 100)),
|
||||||
org.KeepDeletedItemsDays);
|
(int)Math.Round((double)((plan.ProhibitSendReceivePct * plan.MailboxSizeMB * 1024) / 100)),
|
||||||
|
plan.KeepDeletedItemsDays,
|
||||||
|
plan.MaxRecipients,
|
||||||
|
plan.MaxSendMessageSizeKB,
|
||||||
|
plan.MaxReceiveMessageSizeKB,
|
||||||
|
plan.HideFromAddressBook,
|
||||||
|
Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue));
|
||||||
|
|
||||||
MailboxManagerActions pmmActions = MailboxManagerActions.GeneralSettings
|
MailboxManagerActions pmmActions = MailboxManagerActions.GeneralSettings
|
||||||
| MailboxManagerActions.MailFlowSettings
|
| MailboxManagerActions.MailFlowSettings
|
||||||
|
@ -1473,7 +1552,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
| MailboxManagerActions.EmailAddresses;
|
| MailboxManagerActions.EmailAddresses;
|
||||||
|
|
||||||
|
|
||||||
UpdateExchangeAccount(accountId, accountName, accountType, displayName, email, false, pmmActions.ToString(), samAccount, password);
|
UpdateExchangeAccount(accountId, accountName, accountType, displayName, email, false, pmmActions.ToString(), samAccount, password, mailboxPlanId, subscriberNumber);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1694,12 +1773,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int SetMailboxGeneralSettings(int itemId, int accountId, string displayName,
|
public static int SetMailboxGeneralSettings(int itemId, int accountId, bool hideAddressBook, bool disabled)
|
||||||
string password, bool hideAddressBook, bool disabled, string firstName, string initials,
|
|
||||||
string lastName, string address, string city, string state, string zip, string country,
|
|
||||||
string jobTitle, string company, string department, string office, string managerAccountName,
|
|
||||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
|
||||||
string webPage, string notes)
|
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
@ -1727,40 +1801,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
|
||||||
|
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
||||||
|
|
||||||
|
if (Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue))
|
||||||
|
hideAddressBook = true;
|
||||||
|
|
||||||
exchange.SetMailboxGeneralSettings(
|
exchange.SetMailboxGeneralSettings(
|
||||||
account.AccountName,
|
account.AccountName,
|
||||||
displayName,
|
|
||||||
password,
|
|
||||||
hideAddressBook,
|
hideAddressBook,
|
||||||
disabled,
|
disabled);
|
||||||
firstName,
|
|
||||||
initials,
|
|
||||||
lastName,
|
|
||||||
address,
|
|
||||||
city,
|
|
||||||
state,
|
|
||||||
zip,
|
|
||||||
country,
|
|
||||||
jobTitle,
|
|
||||||
company,
|
|
||||||
department,
|
|
||||||
office,
|
|
||||||
managerAccountName,
|
|
||||||
businessPhone,
|
|
||||||
fax,
|
|
||||||
homePhone,
|
|
||||||
mobilePhone,
|
|
||||||
pager,
|
|
||||||
webPage,
|
|
||||||
notes);
|
|
||||||
|
|
||||||
// update account
|
|
||||||
account.DisplayName = displayName;
|
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(password))
|
|
||||||
account.AccountPassword = CryptoUtils.Encrypt(password);
|
|
||||||
|
|
||||||
UpdateAccount(account);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2005,7 +2055,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
public static int SetMailboxMailFlowSettings(int itemId, int accountId,
|
public static int SetMailboxMailFlowSettings(int itemId, int accountId,
|
||||||
bool enableForwarding, string forwardingAccountName, bool forwardToBoth,
|
bool enableForwarding, string forwardingAccountName, bool forwardToBoth,
|
||||||
string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts,
|
string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts,
|
||||||
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB,
|
|
||||||
bool requireSenderAuthentication)
|
bool requireSenderAuthentication)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
|
@ -2041,9 +2090,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
sendOnBehalfAccounts,
|
sendOnBehalfAccounts,
|
||||||
acceptAccounts,
|
acceptAccounts,
|
||||||
rejectAccounts,
|
rejectAccounts,
|
||||||
maxRecipients,
|
|
||||||
maxSendMessageSizeKB,
|
|
||||||
maxReceiveMessageSizeKB,
|
|
||||||
requireSenderAuthentication);
|
requireSenderAuthentication);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2058,6 +2104,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static ExchangeMailbox GetMailboxAdvancedSettings(int itemId, int accountId)
|
public static ExchangeMailbox GetMailboxAdvancedSettings(int itemId, int accountId)
|
||||||
{
|
{
|
||||||
#region Demo Mode
|
#region Demo Mode
|
||||||
|
@ -2098,75 +2145,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int SetMailboxAdvancedSettings(int itemId, int accountId, bool enablePOP,
|
|
||||||
bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays)
|
|
||||||
{
|
|
||||||
// check account
|
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
|
||||||
if (accountCheck < 0) return accountCheck;
|
|
||||||
|
|
||||||
// place log record
|
|
||||||
TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_ADVANCED");
|
|
||||||
TaskManager.ItemId = itemId;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// load organization
|
|
||||||
Organization org = GetOrganization(itemId);
|
|
||||||
if (org == null)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
// check package
|
|
||||||
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
|
||||||
if (packageCheck < 0) return packageCheck;
|
|
||||||
|
|
||||||
// load account
|
|
||||||
ExchangeAccount account = GetAccount(itemId, accountId);
|
|
||||||
|
|
||||||
// load package context
|
|
||||||
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
|
||||||
|
|
||||||
int maxDiskSpace = 0;
|
|
||||||
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_DISKSPACE)
|
|
||||||
&& cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue > 0)
|
|
||||||
maxDiskSpace = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue * 1024;
|
|
||||||
|
|
||||||
if ((maxDiskSpace > 0 &&
|
|
||||||
(issueWarningKB > maxDiskSpace
|
|
||||||
|| prohibitSendKB > maxDiskSpace
|
|
||||||
|| prohibitSendReceiveKB > maxDiskSpace || issueWarningKB == -1 || prohibitSendKB == -1 || prohibitSendReceiveKB == -1)))
|
|
||||||
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
|
||||||
|
|
||||||
// get mailbox settings
|
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
|
||||||
|
|
||||||
exchange.SetMailboxAdvancedSettings(
|
|
||||||
org.OrganizationId,
|
|
||||||
account.AccountName,
|
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_POP3ALLOWED) && enablePOP,
|
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_IMAPALLOWED) && enableIMAP,
|
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_OWAALLOWED) && enableOWA,
|
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_MAPIALLOWED) && enableMAPI,
|
|
||||||
QuotaEnabled(cntx, Quotas.EXCHANGE2007_ACTIVESYNCALLOWED) && enableActiveSync,
|
|
||||||
issueWarningKB,
|
|
||||||
prohibitSendKB,
|
|
||||||
prohibitSendReceiveKB,
|
|
||||||
keepDeletedItemsDays);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
throw TaskManager.WriteError(ex);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
TaskManager.CompleteTask();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int SetMailboxManagerSettings(int itemId, int accountId, bool pmmAllowed, MailboxManagerActions action)
|
public static int SetMailboxManagerSettings(int itemId, int accountId, bool pmmAllowed, MailboxManagerActions action)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
|
@ -2421,6 +2399,224 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Mailbox plan
|
||||||
|
public static int SetExchangeMailboxPlan(int itemId, int accountId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN");
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// load organization
|
||||||
|
Organization org = GetOrganization(itemId);
|
||||||
|
if (org == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// check package
|
||||||
|
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
||||||
|
if (packageCheck < 0) return packageCheck;
|
||||||
|
|
||||||
|
// load account
|
||||||
|
ExchangeAccount account = GetAccount(itemId, accountId);
|
||||||
|
|
||||||
|
// load package context
|
||||||
|
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
||||||
|
|
||||||
|
int maxDiskSpace = -1;
|
||||||
|
int quotaUsed = 0;
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_DISKSPACE)
|
||||||
|
&& cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue > 0)
|
||||||
|
{
|
||||||
|
maxDiskSpace = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||||
|
quotaUsed = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaUsedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExchangeMailboxPlan plan = GetExchangeMailboxPlan(itemId, mailboxPlanId);
|
||||||
|
if (maxDiskSpace != -1)
|
||||||
|
{
|
||||||
|
if ((quotaUsed + plan.MailboxSizeMB) > (maxDiskSpace))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get mailbox settings
|
||||||
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
exchange.SetMailboxAdvancedSettings(
|
||||||
|
org.OrganizationId,
|
||||||
|
account.AccountName,
|
||||||
|
plan.EnablePOP,
|
||||||
|
plan.EnableIMAP,
|
||||||
|
plan.EnableOWA,
|
||||||
|
plan.EnableMAPI,
|
||||||
|
plan.EnableActiveSync,
|
||||||
|
(int)Math.Round((double)((plan.IssueWarningPct * plan.MailboxSizeMB * 1024) / 100)),
|
||||||
|
(int)Math.Round((double)((plan.ProhibitSendPct * plan.MailboxSizeMB * 1024) / 100)),
|
||||||
|
(int)Math.Round((double)((plan.ProhibitSendReceivePct * plan.MailboxSizeMB * 1024) / 100)),
|
||||||
|
plan.KeepDeletedItemsDays,
|
||||||
|
plan.MaxRecipients,
|
||||||
|
plan.MaxSendMessageSizeKB,
|
||||||
|
plan.MaxReceiveMessageSizeKB);
|
||||||
|
|
||||||
|
DataProvider.SetExchangeAccountMailboxPlan(accountId, mailboxPlanId);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<ExchangeMailboxPlan> GetExchangeMailboxPlans(int itemId)
|
||||||
|
{
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS");
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return ObjectUtils.CreateListFromDataReader<ExchangeMailboxPlan>(
|
||||||
|
DataProvider.GetExchangeMailboxPlans(itemId));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ExchangeMailboxPlan GetExchangeMailboxPlan(int itemID, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN");
|
||||||
|
TaskManager.ItemId = mailboxPlanId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return ObjectUtils.FillObjectFromDataReader<ExchangeMailboxPlan>(
|
||||||
|
DataProvider.GetExchangeMailboxPlan(mailboxPlanId));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int AddExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan)
|
||||||
|
{
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN");
|
||||||
|
TaskManager.ItemId = itemID;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Organization org = GetOrganization(itemID);
|
||||||
|
if (org == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// load package context
|
||||||
|
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
|
||||||
|
|
||||||
|
mailboxPlan.EnableActiveSync = mailboxPlan.EnableActiveSync & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ACTIVESYNCALLOWED].QuotaAllocatedValue);
|
||||||
|
mailboxPlan.EnableIMAP = mailboxPlan.EnableIMAP & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_IMAPALLOWED].QuotaAllocatedValue);
|
||||||
|
mailboxPlan.EnableMAPI = mailboxPlan.EnableMAPI & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_MAPIALLOWED].QuotaAllocatedValue);
|
||||||
|
mailboxPlan.EnableOWA = mailboxPlan.EnableOWA & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_OWAALLOWED].QuotaAllocatedValue);
|
||||||
|
mailboxPlan.EnablePOP = mailboxPlan.EnablePOP & Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_POP3ALLOWED].QuotaAllocatedValue);
|
||||||
|
if (mailboxPlan.KeepDeletedItemsDays > cntx.Quotas[Quotas.EXCHANGE2007_KEEPDELETEDITEMSDAYS].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.KeepDeletedItemsDays = cntx.Quotas[Quotas.EXCHANGE2007_KEEPDELETEDITEMSDAYS].QuotaAllocatedValue;
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue != -1)
|
||||||
|
if (mailboxPlan.MailboxSizeMB > cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.MailboxSizeMB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||||
|
if (mailboxPlan.MaxReceiveMessageSizeKB > cntx.Quotas[Quotas.EXCHANGE2007_MAXRECEIVEMESSAGESIZEKB].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.MaxReceiveMessageSizeKB = cntx.Quotas[Quotas.EXCHANGE2007_MAXRECEIVEMESSAGESIZEKB].QuotaAllocatedValue;
|
||||||
|
if (mailboxPlan.MaxSendMessageSizeKB > cntx.Quotas[Quotas.EXCHANGE2007_MAXSENDMESSAGESIZEKB].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.MaxSendMessageSizeKB = cntx.Quotas[Quotas.EXCHANGE2007_MAXSENDMESSAGESIZEKB].QuotaAllocatedValue;
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue != -1)
|
||||||
|
if (mailboxPlan.MaxRecipients > cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue)
|
||||||
|
mailboxPlan.MaxRecipients = cntx.Quotas[Quotas.EXCHANGE2007_MAXRECIPIENTS].QuotaAllocatedValue;
|
||||||
|
if (Convert.ToBoolean(cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue)) mailboxPlan.HideFromAddressBook = true;
|
||||||
|
|
||||||
|
return DataProvider.AddExchangeMailboxPlan(itemID, mailboxPlan.MailboxPlan, mailboxPlan.EnableActiveSync, mailboxPlan.EnableIMAP, mailboxPlan.EnableMAPI, mailboxPlan.EnableOWA, mailboxPlan.EnablePOP,
|
||||||
|
mailboxPlan.IsDefault, mailboxPlan.IssueWarningPct, mailboxPlan.KeepDeletedItemsDays, mailboxPlan.MailboxSizeMB, mailboxPlan.MaxReceiveMessageSizeKB, mailboxPlan.MaxRecipients,
|
||||||
|
mailboxPlan.MaxSendMessageSizeKB, mailboxPlan.ProhibitSendPct, mailboxPlan.ProhibitSendReceivePct, mailboxPlan.HideFromAddressBook);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int DeleteExchangeMailboxPlan(int itemID, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN");
|
||||||
|
TaskManager.ItemId = itemID;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DataProvider.DeleteExchangeMailboxPlan(mailboxPlanId);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN");
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DataProvider.SetOrganizationDefaultExchangeMailboxPlan(itemId, mailboxPlanId);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region Contacts
|
#region Contacts
|
||||||
public static int CreateContact(int itemId, string displayName, string email)
|
public static int CreateContact(int itemId, string displayName, string email)
|
||||||
{
|
{
|
||||||
|
@ -2444,6 +2640,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
email = email.Trim();
|
||||||
|
|
||||||
// load organization
|
// load organization
|
||||||
Organization org = GetOrganization(itemId);
|
Organization org = GetOrganization(itemId);
|
||||||
|
|
||||||
|
@ -2477,10 +2677,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
accountName,
|
accountName,
|
||||||
email, org.DefaultDomain);
|
email, org.DefaultDomain);
|
||||||
|
|
||||||
|
ExchangeContact contact = exchange.GetContactGeneralSettings(accountName);
|
||||||
|
|
||||||
// add meta-item
|
// add meta-item
|
||||||
int accountId = AddAccount(itemId, ExchangeAccountType.Contact, accountName,
|
int accountId = AddAccount(itemId, ExchangeAccountType.Contact, accountName,
|
||||||
displayName, email, false,
|
displayName, email, false,
|
||||||
0, "", null);
|
0, contact.SAMAccountName, null, 0, null);
|
||||||
|
|
||||||
return accountId;
|
return accountId;
|
||||||
}
|
}
|
||||||
|
@ -2603,6 +2805,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
emailAddress = emailAddress.Trim();
|
||||||
|
firstName = firstName.Trim();
|
||||||
|
lastName = lastName.Trim();
|
||||||
|
|
||||||
// load organization
|
// load organization
|
||||||
Organization org = GetOrganization(itemId);
|
Organization org = GetOrganization(itemId);
|
||||||
if (org == null)
|
if (org == null)
|
||||||
|
@ -2770,6 +2977,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
name = name.Trim();
|
||||||
|
domain = domain.Trim();
|
||||||
|
|
||||||
// e-mail
|
// e-mail
|
||||||
string email = name + "@" + domain;
|
string email = name + "@" + domain;
|
||||||
|
|
||||||
|
@ -2800,18 +3011,25 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
OrganizationUser manager = OrganizationController.GetAccount(itemId, managerId);
|
OrganizationUser manager = OrganizationController.GetAccount(itemId, managerId);
|
||||||
|
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
exchange.CreateDistributionList(
|
exchange.CreateDistributionList(
|
||||||
org.OrganizationId,
|
org.OrganizationId,
|
||||||
org.DistinguishedName,
|
org.DistinguishedName,
|
||||||
displayName,
|
displayName,
|
||||||
accountName,
|
accountName,
|
||||||
name,
|
name,
|
||||||
domain, manager.AccountName);
|
domain, manager.AccountName, addressLists.ToArray());
|
||||||
|
|
||||||
|
ExchangeDistributionList dl = exchange.GetDistributionListGeneralSettings(accountName);
|
||||||
|
|
||||||
// add meta-item
|
// add meta-item
|
||||||
int accountId = AddAccount(itemId, ExchangeAccountType.DistributionList, accountName,
|
int accountId = AddAccount(itemId, ExchangeAccountType.DistributionList, email,
|
||||||
displayName, email, false,
|
displayName, email, false,
|
||||||
0, "", null);
|
0, dl.SAMAccountName, null, 0, null);
|
||||||
|
|
||||||
// register email address
|
// register email address
|
||||||
AddAccountEmailAddress(accountId, email);
|
AddAccountEmailAddress(accountId, email);
|
||||||
|
@ -2933,6 +3151,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
|
||||||
// load organization
|
// load organization
|
||||||
Organization org = GetOrganization(itemId);
|
Organization org = GetOrganization(itemId);
|
||||||
if (org == null)
|
if (org == null)
|
||||||
|
@ -2949,13 +3169,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
exchange.SetDistributionListGeneralSettings(
|
exchange.SetDistributionListGeneralSettings(
|
||||||
account.AccountName,
|
account.AccountName,
|
||||||
displayName,
|
displayName,
|
||||||
hideAddressBook,
|
hideAddressBook,
|
||||||
managerAccount,
|
managerAccount,
|
||||||
memberAccounts,
|
memberAccounts,
|
||||||
notes);
|
notes,
|
||||||
|
addressLists.ToArray());
|
||||||
|
|
||||||
// update account
|
// update account
|
||||||
account.DisplayName = displayName;
|
account.DisplayName = displayName;
|
||||||
|
@ -3043,10 +3268,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
|
|
||||||
exchange.SetDistributionListMailFlowSettings(account.AccountName,
|
exchange.SetDistributionListMailFlowSettings(account.AccountName,
|
||||||
acceptAccounts,
|
acceptAccounts,
|
||||||
rejectAccounts,
|
rejectAccounts,
|
||||||
requireSenderAuthentication);
|
requireSenderAuthentication,
|
||||||
|
addressLists.ToArray());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3115,9 +3346,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
exchange.SetDistributionListEmailAddresses(
|
exchange.SetDistributionListEmailAddresses(
|
||||||
account.AccountName,
|
account.AccountName,
|
||||||
GetAccountSimpleEmailAddresses(itemId, accountId));
|
GetAccountSimpleEmailAddresses(itemId, accountId), addressLists.ToArray());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3159,9 +3394,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
exchange.SetDistributionListPrimaryEmailAddress(
|
exchange.SetDistributionListPrimaryEmailAddress(
|
||||||
account.AccountName,
|
account.AccountName,
|
||||||
emailAddress);
|
emailAddress,
|
||||||
|
addressLists.ToArray());
|
||||||
|
|
||||||
// save account
|
// save account
|
||||||
UpdateAccount(account);
|
UpdateAccount(account);
|
||||||
|
@ -3213,9 +3453,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
ExchangeServer exchange = GetExchangeServer(exchangeServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
exchange.SetDistributionListEmailAddresses(
|
exchange.SetDistributionListEmailAddresses(
|
||||||
account.AccountName,
|
account.AccountName,
|
||||||
GetAccountSimpleEmailAddresses(itemId, accountId));
|
GetAccountSimpleEmailAddresses(itemId, accountId), addressLists.ToArray());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3273,8 +3517,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
List<string> addressLists = new List<string>();
|
||||||
|
addressLists.Add(org.GlobalAddressList);
|
||||||
|
addressLists.Add(org.AddressList);
|
||||||
|
|
||||||
exchange.SetDistributionListPermissions(org.OrganizationId, account.AccountName, sendAsAccounts,
|
exchange.SetDistributionListPermissions(org.OrganizationId, account.AccountName, sendAsAccounts,
|
||||||
sendOnBehalfAccounts);
|
sendOnBehalfAccounts, addressLists.ToArray());
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -3422,7 +3670,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// add meta-item
|
// add meta-item
|
||||||
int accountId = AddAccount(itemId, ExchangeAccountType.PublicFolder, accountName,
|
int accountId = AddAccount(itemId, ExchangeAccountType.PublicFolder, accountName,
|
||||||
folderPath, email, mailEnabled,
|
folderPath, email, mailEnabled,
|
||||||
0, "", null);
|
0, "", null, 0 , null);
|
||||||
|
|
||||||
// register email address
|
// register email address
|
||||||
if(mailEnabled)
|
if(mailEnabled)
|
||||||
|
|
|
@ -633,7 +633,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static Organizations GetOrganizationProxy(int serviceId)
|
public static Organizations GetOrganizationProxy(int serviceId)
|
||||||
{
|
{
|
||||||
Organizations ws = new Organizations();
|
Organizations ws = new Organizations();
|
||||||
ServiceProviderProxy.Init(ws, serviceId);
|
ServiceProviderProxy.Init(ws, serviceId);
|
||||||
|
@ -710,9 +710,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
org.Id = 1;
|
org.Id = 1;
|
||||||
org.OrganizationId = "fabrikam";
|
org.OrganizationId = "fabrikam";
|
||||||
org.Name = "Fabrikam Inc";
|
org.Name = "Fabrikam Inc";
|
||||||
org.IssueWarningKB = 150000;
|
|
||||||
org.ProhibitSendKB = 170000;
|
|
||||||
org.ProhibitSendReceiveKB = 190000;
|
|
||||||
org.KeepDeletedItemsDays = 14;
|
org.KeepDeletedItemsDays = 14;
|
||||||
org.GlobalAddressList = "FabrikamGAL";
|
org.GlobalAddressList = "FabrikamGAL";
|
||||||
return org;
|
return org;
|
||||||
|
@ -980,8 +977,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
OrganizationUsersPaged result = new OrganizationUsersPaged();
|
OrganizationUsersPaged result = new OrganizationUsersPaged();
|
||||||
result.RecordsCount = (int)ds.Tables[0].Rows[0][0];
|
result.RecordsCount = (int)ds.Tables[0].Rows[0][0];
|
||||||
|
|
||||||
|
List<OrganizationUser> Tmpaccounts = new List<OrganizationUser>();
|
||||||
|
ObjectUtils.FillCollectionFromDataView(Tmpaccounts, ds.Tables[1].DefaultView);
|
||||||
|
result.PageUsers = Tmpaccounts.ToArray();
|
||||||
|
|
||||||
List<OrganizationUser> accounts = new List<OrganizationUser>();
|
List<OrganizationUser> accounts = new List<OrganizationUser>();
|
||||||
ObjectUtils.FillCollectionFromDataView(accounts, ds.Tables[1].DefaultView);
|
|
||||||
|
foreach (OrganizationUser user in Tmpaccounts.ToArray())
|
||||||
|
{
|
||||||
|
accounts.Add(GetUserGeneralSettings(itemId, user.AccountId));
|
||||||
|
}
|
||||||
|
|
||||||
result.PageUsers = accounts.ToArray();
|
result.PageUsers = accounts.ToArray();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -994,21 +1000,22 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static int AddOrganizationUser(int itemId, string accountName, string displayName, string email, string accountPassword)
|
private static int AddOrganizationUser(int itemId, string accountName, string displayName, string email, string sAMAccountName, string accountPassword, string subscriberNumber)
|
||||||
{
|
{
|
||||||
return DataProvider.AddExchangeAccount(itemId, (int)ExchangeAccountType.User, accountName, displayName, email, false, string.Empty,
|
return DataProvider.AddExchangeAccount(itemId, (int)ExchangeAccountType.User, accountName, displayName, email, false, string.Empty,
|
||||||
string.Empty, CryptoUtils.Encrypt(accountPassword));
|
sAMAccountName, CryptoUtils.Encrypt(accountPassword), 0, subscriberNumber.Trim());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetAccountName(string loginName)
|
public static string GetAccountName(string loginName)
|
||||||
{
|
{
|
||||||
string []parts = loginName.Split('@');
|
//string []parts = loginName.Split('@');
|
||||||
return parts != null && parts.Length > 1 ? parts[0] : loginName;
|
//return parts != null && parts.Length > 1 ? parts[0] : loginName;
|
||||||
|
return loginName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int CreateUser(int itemId, string displayName, string name, string domain, string password, bool enabled, bool sendNotification, string to, out string accountName)
|
public static int CreateUser(int itemId, string displayName, string name, string domain, string password, string subscriberNumber, bool enabled, bool sendNotification, string to, out string accountName)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(displayName))
|
if (string.IsNullOrEmpty(displayName))
|
||||||
throw new ArgumentNullException("displayName");
|
throw new ArgumentNullException("displayName");
|
||||||
|
@ -1032,6 +1039,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// place log record
|
// place log record
|
||||||
TaskManager.StartTask("ORGANIZATION", "CREATE_USER");
|
TaskManager.StartTask("ORGANIZATION", "CREATE_USER");
|
||||||
TaskManager.ItemId = itemId;
|
TaskManager.ItemId = itemId;
|
||||||
|
TaskManager.Write("Organization ID :" + itemId);
|
||||||
|
TaskManager.Write("name :" + name);
|
||||||
|
TaskManager.Write("domain :" + domain);
|
||||||
|
TaskManager.Write("subscriberNumber :" + subscriberNumber);
|
||||||
|
|
||||||
|
int userId = -1;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
name = name.Trim();
|
||||||
|
domain = domain.Trim();
|
||||||
|
|
||||||
// e-mail
|
// e-mail
|
||||||
string email = name + "@" + domain;
|
string email = name + "@" + domain;
|
||||||
|
@ -1056,10 +1075,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
|
Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
|
||||||
|
|
||||||
string upn = string.Format("{0}@{1}", name, domain);
|
string upn = string.Format("{0}@{1}", name, domain);
|
||||||
accountName = BuildAccountName(org.OrganizationId, name);
|
string sAMAccountName = BuildAccountName(org.OrganizationId, name);
|
||||||
orgProxy.CreateUser(org.OrganizationId, accountName, displayName, upn, password, enabled);
|
|
||||||
|
|
||||||
int userId = AddOrganizationUser(itemId, accountName, displayName, email, password);
|
TaskManager.Write("accountName :" + sAMAccountName);
|
||||||
|
TaskManager.Write("upn :" + upn);
|
||||||
|
|
||||||
|
if (orgProxy.CreateUser(org.OrganizationId, sAMAccountName, displayName, upn, password, enabled) == 0)
|
||||||
|
{
|
||||||
|
OrganizationUser retUser = orgProxy.GetUserGeneralSettings(upn, org.OrganizationId);
|
||||||
|
TaskManager.Write("sAMAccountName :" + retUser.DomainUserName);
|
||||||
|
|
||||||
|
userId = AddOrganizationUser(itemId, upn, displayName, email, retUser.DomainUserName, password, subscriberNumber);
|
||||||
|
accountName = upn;
|
||||||
|
|
||||||
// register email address
|
// register email address
|
||||||
AddAccountEmailAddress(userId, email);
|
AddAccountEmailAddress(userId, email);
|
||||||
|
@ -1068,11 +1095,107 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
SendSummaryLetter(org.Id, userId, true, to, "");
|
SendSummaryLetter(org.Id, userId, true, to, "");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskManager.WriteError("Failed to create user");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
return userId;
|
return userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static int ImportUser(int itemId, string accountName, string displayName, string name, string domain, string password, string subscriberNumber)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(accountName))
|
||||||
|
throw new ArgumentNullException("accountName");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(displayName))
|
||||||
|
throw new ArgumentNullException("displayName");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(name))
|
||||||
|
throw new ArgumentNullException("name");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(domain))
|
||||||
|
throw new ArgumentNullException("domain");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(password))
|
||||||
|
throw new ArgumentNullException("password");
|
||||||
|
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("ORGANIZATION", "IMPORT_USER");
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
TaskManager.Write("Organization ID :" + itemId);
|
||||||
|
TaskManager.Write("account :" + accountName);
|
||||||
|
TaskManager.Write("name :" + name);
|
||||||
|
TaskManager.Write("domain :" + domain);
|
||||||
|
|
||||||
|
int userId = -1;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
accountName = accountName.Trim();
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
name = name.Trim();
|
||||||
|
domain = domain.Trim();
|
||||||
|
|
||||||
|
// e-mail
|
||||||
|
string email = name + "@" + domain;
|
||||||
|
|
||||||
|
if (EmailAddressExists(email))
|
||||||
|
return BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS;
|
||||||
|
|
||||||
|
// load organization
|
||||||
|
Organization org = GetOrganization(itemId);
|
||||||
|
if (org == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// check package
|
||||||
|
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
||||||
|
if (packageCheck < 0) return packageCheck;
|
||||||
|
|
||||||
|
int errorCode;
|
||||||
|
if (!CheckUserQuota(org.Id, out errorCode))
|
||||||
|
return errorCode;
|
||||||
|
|
||||||
|
Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
|
||||||
|
|
||||||
|
string upn = string.Format("{0}@{1}", name, domain);
|
||||||
|
TaskManager.Write("upn :" + upn);
|
||||||
|
|
||||||
|
OrganizationUser retUser = orgProxy.GetUserGeneralSettings(accountName, org.OrganizationId);
|
||||||
|
|
||||||
|
TaskManager.Write("sAMAccountName :" + retUser.DomainUserName);
|
||||||
|
|
||||||
|
userId = AddOrganizationUser(itemId, accountName, displayName, email, retUser.DomainUserName, password, subscriberNumber);
|
||||||
|
|
||||||
|
AddAccountEmailAddress(userId, email);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void AddAccountEmailAddress(int accountId, string emailAddress)
|
private static void AddAccountEmailAddress(int accountId, string emailAddress)
|
||||||
{
|
{
|
||||||
DataProvider.AddExchangeAccountEmailAddress(accountId, emailAddress);
|
DataProvider.AddExchangeAccountEmailAddress(accountId, emailAddress);
|
||||||
|
@ -1080,28 +1203,40 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
private static string BuildAccountName(string orgId, string name)
|
private static string BuildAccountName(string orgId, string name)
|
||||||
{
|
{
|
||||||
int maxLen = 19 - orgId.Length;
|
string accountName = name = name.Replace(" ", "");
|
||||||
|
string CounterStr = "00000";
|
||||||
// try to choose name
|
int counter = 0;
|
||||||
int i = 0;
|
bool bFound = false;
|
||||||
while (true)
|
do
|
||||||
{
|
{
|
||||||
string num = i > 0 ? i.ToString() : "";
|
accountName = genSamLogin(name, CounterStr);
|
||||||
int len = maxLen - num.Length;
|
|
||||||
|
|
||||||
if (name.Length > len)
|
if (!AccountExists(accountName)) bFound = true;
|
||||||
name = name.Substring(0, len);
|
|
||||||
|
|
||||||
string accountName = name + num + "_" + orgId;
|
CounterStr = counter.ToString("d5");
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
while (!bFound);
|
||||||
|
|
||||||
// check if already exists
|
|
||||||
if (!AccountExists(accountName))
|
|
||||||
return accountName;
|
return accountName;
|
||||||
|
}
|
||||||
|
|
||||||
i++;
|
private static string genSamLogin(string login, string strCounter)
|
||||||
|
{
|
||||||
|
int maxLogin = 20;
|
||||||
|
int fullLen = login.Length + strCounter.Length;
|
||||||
|
if (fullLen <= maxLogin)
|
||||||
|
return login + strCounter;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (login.Length - (fullLen - maxLogin) > 0)
|
||||||
|
return login.Substring(0, login.Length - (fullLen - maxLogin)) + strCounter;
|
||||||
|
else return strCounter; // ????
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static bool AccountExists(string accountName)
|
private static bool AccountExists(string accountName)
|
||||||
{
|
{
|
||||||
return DataProvider.ExchangeAccountExists(accountName);
|
return DataProvider.ExchangeAccountExists(accountName);
|
||||||
|
@ -1180,6 +1315,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static OrganizationUser GetAccountByAccountName(int itemId, string AccountName)
|
||||||
|
{
|
||||||
|
OrganizationUser account = ObjectUtils.FillObjectFromDataReader<OrganizationUser>(
|
||||||
|
DataProvider.GetExchangeAccountByAccountName(itemId, AccountName));
|
||||||
|
|
||||||
|
if (account == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return account;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void DeleteUserFromMetabase(int itemId, int accountId)
|
private static void DeleteUserFromMetabase(int itemId, int accountId)
|
||||||
{
|
{
|
||||||
// try to get organization
|
// try to get organization
|
||||||
|
@ -1217,11 +1364,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
string accountName = GetAccountName(account.AccountName);
|
string accountName = GetAccountName(account.AccountName);
|
||||||
|
|
||||||
|
|
||||||
OrganizationUser retUser = orgProxy.GeUserGeneralSettings(accountName, org.OrganizationId);
|
OrganizationUser retUser = orgProxy.GetUserGeneralSettings(accountName, org.OrganizationId);
|
||||||
retUser.AccountId = accountId;
|
retUser.AccountId = accountId;
|
||||||
retUser.AccountName = account.AccountName;
|
retUser.AccountName = account.AccountName;
|
||||||
retUser.PrimaryEmailAddress = account.PrimaryEmailAddress;
|
retUser.PrimaryEmailAddress = account.PrimaryEmailAddress;
|
||||||
retUser.AccountType = account.AccountType;
|
retUser.AccountType = account.AccountType;
|
||||||
|
retUser.CrmUserId = CRMController.GetCrmUserId(accountId);
|
||||||
|
retUser.IsOCSUser = DataProvider.CheckOCSUserExists(accountId);
|
||||||
|
//retUser.IsLyncUser = DataProvider.CheckLyncUserExists(accountId);
|
||||||
|
retUser.IsBlackBerryUser = BlackBerryController.CheckBlackBerryUserExists(accountId);
|
||||||
|
retUser.SubscriberNumber = account.SubscriberNumber;
|
||||||
|
|
||||||
return retUser;
|
return retUser;
|
||||||
}
|
}
|
||||||
|
@ -1240,7 +1392,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
string lastName, string address, string city, string state, string zip, string country,
|
string lastName, string address, string city, string state, string zip, string country,
|
||||||
string jobTitle, string company, string department, string office, string managerAccountName,
|
string jobTitle, string company, string department, string office, string managerAccountName,
|
||||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||||
string webPage, string notes, string externalEmail)
|
string webPage, string notes, string externalEmail, string subscriberNumber)
|
||||||
{
|
{
|
||||||
|
|
||||||
// check account
|
// check account
|
||||||
|
@ -1253,6 +1405,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
displayName = displayName.Trim();
|
||||||
|
firstName = firstName.Trim();
|
||||||
|
lastName = lastName.Trim();
|
||||||
|
|
||||||
// load organization
|
// load organization
|
||||||
Organization org = GetOrganization(itemId);
|
Organization org = GetOrganization(itemId);
|
||||||
if (org == null)
|
if (org == null)
|
||||||
|
@ -1303,6 +1459,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
// update account
|
// update account
|
||||||
account.DisplayName = displayName;
|
account.DisplayName = displayName;
|
||||||
|
account.SubscriberNumber = subscriberNumber;
|
||||||
|
|
||||||
//account.
|
//account.
|
||||||
if (!String.IsNullOrEmpty(password))
|
if (!String.IsNullOrEmpty(password))
|
||||||
|
@ -1329,7 +1486,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
DataProvider.UpdateExchangeAccount(account.AccountId, account.AccountName, account.AccountType, account.DisplayName,
|
DataProvider.UpdateExchangeAccount(account.AccountId, account.AccountName, account.AccountType, account.DisplayName,
|
||||||
account.PrimaryEmailAddress, account.MailEnabledPublicFolder,
|
account.PrimaryEmailAddress, account.MailEnabledPublicFolder,
|
||||||
account.MailboxManagerActions.ToString(), account.SamAccountName, account.AccountPassword);
|
account.MailboxManagerActions.ToString(), account.SamAccountName, account.AccountPassword, account.MailboxPlanId,
|
||||||
|
(string.IsNullOrEmpty(account.SubscriberNumber) ? null : account.SubscriberNumber.Trim()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1377,11 +1535,58 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return ObjectUtils.CreateListFromDataReader<OrganizationUser>(
|
List<OrganizationUser> Tmpaccounts = ObjectUtils.CreateListFromDataReader<OrganizationUser>(
|
||||||
DataProvider.SearchOrganizationAccounts(SecurityContext.User.UserId, itemId,
|
DataProvider.SearchOrganizationAccounts(SecurityContext.User.UserId, itemId,
|
||||||
filterColumn, filterValue, sortColumn, includeMailboxes));
|
filterColumn, filterValue, sortColumn, includeMailboxes));
|
||||||
|
|
||||||
|
List<OrganizationUser> Accounts = new List<OrganizationUser>();
|
||||||
|
|
||||||
|
foreach (OrganizationUser user in Tmpaccounts.ToArray())
|
||||||
|
{
|
||||||
|
Accounts.Add(GetUserGeneralSettings(itemId, user.AccountId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Accounts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetAccountIdByUserPrincipalName(int itemId, string userPrincipalName)
|
||||||
|
{
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("ORGANIZATION", "GET_ACCOUNT_BYUPN");
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
int accounId = -1;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// load organization
|
||||||
|
Organization org = GetOrganization(itemId);
|
||||||
|
if (org == null)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// get samaccountName
|
||||||
|
//Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
|
||||||
|
//string accountName = orgProxy.GetSamAccountNameByUserPrincipalName(org.OrganizationId, userPrincipalName);
|
||||||
|
|
||||||
|
// load account
|
||||||
|
OrganizationUser account = GetAccountByAccountName(itemId, userPrincipalName);
|
||||||
|
|
||||||
|
if (account != null)
|
||||||
|
accounId = account.AccountId;
|
||||||
|
|
||||||
|
return accounId;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public static List<OrganizationDomainName> GetOrganizationDomains(int itemId)
|
public static List<OrganizationDomainName> GetOrganizationDomains(int itemId)
|
||||||
|
|
|
@ -110,11 +110,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public ExchangeItemStatistics[] GetPublicFoldersStatistics(int itemId)
|
public ExchangeMailboxStatistics GetMailboxStatistics(int itemId, int accountId)
|
||||||
{
|
{
|
||||||
return ExchangeServerController.GetPublicFoldersStatistics(itemId);
|
return ExchangeServerController.GetMailboxStatistics(itemId, accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int CalculateOrganizationDiskspace(int itemId)
|
public int CalculateOrganizationDiskspace(int itemId)
|
||||||
{
|
{
|
||||||
|
@ -209,9 +210,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
#region Mailboxes
|
#region Mailboxes
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int CreateMailbox(int itemId, int accountId, ExchangeAccountType accountType, string accountName, string displayName,
|
public int CreateMailbox(int itemId, int accountId, ExchangeAccountType accountType, string accountName, string displayName,
|
||||||
string name, string domain, string password, bool sendSetupInstructions, string setupInstructionMailAddress)
|
string name, string domain, string password, bool sendSetupInstructions, string setupInstructionMailAddress, int mailboxPlanId, string subscriberNumber)
|
||||||
{
|
{
|
||||||
return ExchangeServerController.CreateMailbox(itemId, accountId, accountType, accountName, displayName, name, domain, password, sendSetupInstructions, setupInstructionMailAddress);
|
return ExchangeServerController.CreateMailbox(itemId, accountId, accountType, accountName, displayName, name, domain, password, sendSetupInstructions, setupInstructionMailAddress, mailboxPlanId, subscriberNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
|
@ -234,19 +235,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int SetMailboxGeneralSettings(int itemId, int accountId, string displayName,
|
public int SetMailboxGeneralSettings(int itemId, int accountId, bool hideAddressBook, bool disabled)
|
||||||
string password, bool hideAddressBook, bool disabled, string firstName, string initials,
|
|
||||||
string lastName, string address, string city, string state, string zip, string country,
|
|
||||||
string jobTitle, string company, string department, string office, string managerAccountName,
|
|
||||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
|
||||||
string webPage, string notes)
|
|
||||||
{
|
{
|
||||||
return ExchangeServerController.SetMailboxGeneralSettings(itemId, accountId, displayName,
|
return ExchangeServerController.SetMailboxGeneralSettings(itemId, accountId, hideAddressBook, disabled);
|
||||||
password, hideAddressBook, disabled, firstName, initials,
|
|
||||||
lastName, address, city, state, zip, country,
|
|
||||||
jobTitle, company, department, office, managerAccountName,
|
|
||||||
businessPhone, fax, homePhone, mobilePhone, pager,
|
|
||||||
webPage, notes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
|
@ -283,30 +274,19 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
public int SetMailboxMailFlowSettings(int itemId, int accountId,
|
public int SetMailboxMailFlowSettings(int itemId, int accountId,
|
||||||
bool enableForwarding, string forwardingAccountName, bool forwardToBoth,
|
bool enableForwarding, string forwardingAccountName, bool forwardToBoth,
|
||||||
string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts,
|
string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts,
|
||||||
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB,
|
|
||||||
bool requireSenderAuthentication)
|
bool requireSenderAuthentication)
|
||||||
{
|
{
|
||||||
return ExchangeServerController.SetMailboxMailFlowSettings(itemId, accountId,
|
return ExchangeServerController.SetMailboxMailFlowSettings(itemId, accountId,
|
||||||
enableForwarding, forwardingAccountName, forwardToBoth,
|
enableForwarding, forwardingAccountName, forwardToBoth,
|
||||||
sendOnBehalfAccounts, acceptAccounts, rejectAccounts,
|
sendOnBehalfAccounts, acceptAccounts, rejectAccounts,
|
||||||
maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB,
|
|
||||||
requireSenderAuthentication);
|
requireSenderAuthentication);
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
|
||||||
public ExchangeMailbox GetMailboxAdvancedSettings(int itemId, int accountId)
|
|
||||||
{
|
|
||||||
return ExchangeServerController.GetMailboxAdvancedSettings(itemId, accountId);
|
|
||||||
}
|
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int SetMailboxAdvancedSettings(int itemId, int accountId, bool enablePOP,
|
public int SetExchangeMailboxPlan(int itemId, int accountId, int mailboxPlanId)
|
||||||
bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays)
|
|
||||||
{
|
{
|
||||||
return ExchangeServerController.SetMailboxAdvancedSettings(itemId, accountId, enablePOP,
|
return ExchangeServerController.SetExchangeMailboxPlan(itemId, accountId, mailboxPlanId);
|
||||||
enableIMAP, enableOWA, enableMAPI, enableActiveSync,
|
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
|
@ -473,6 +453,74 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region MobileDevice
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId)
|
||||||
|
{
|
||||||
|
return ExchangeServerController.GetMobileDevices(itemId, accountId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId)
|
||||||
|
{
|
||||||
|
return ExchangeServerController.GetMobileDevice(itemId, deviceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void WipeDataFromDevice(int itemId, string deviceId)
|
||||||
|
{
|
||||||
|
ExchangeServerController.WipeDataFromDevice(itemId, deviceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void CancelRemoteWipeRequest(int itemId, string deviceId)
|
||||||
|
{
|
||||||
|
ExchangeServerController.CancelRemoteWipeRequest(itemId, deviceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void RemoveDevice(int itemId, string deviceId)
|
||||||
|
{
|
||||||
|
ExchangeServerController.RemoveDevice(itemId, deviceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region MailboxPlans
|
||||||
|
[WebMethod]
|
||||||
|
public List<ExchangeMailboxPlan> GetExchangeMailboxPlans(int itemId)
|
||||||
|
{
|
||||||
|
return ExchangeServerController.GetExchangeMailboxPlans(itemId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public ExchangeMailboxPlan GetExchangeMailboxPlan(int itemId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
return ExchangeServerController.GetExchangeMailboxPlan(itemId, mailboxPlanId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int AddExchangeMailboxPlan(int itemId, ExchangeMailboxPlan mailboxPlan)
|
||||||
|
{
|
||||||
|
return ExchangeServerController.AddExchangeMailboxPlan(itemId, mailboxPlan);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int DeleteExchangeMailboxPlan(int itemId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
return ExchangeServerController.DeleteExchangeMailboxPlan(itemId, mailboxPlanId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId)
|
||||||
|
{
|
||||||
|
ExchangeServerController.SetOrganizationDefaultExchangeMailboxPlan(itemId, mailboxPlanId);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region Public Folders
|
#region Public Folders
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int CreatePublicFolder(int itemId, string parentFolder, string folderName,
|
public int CreatePublicFolder(int itemId, string parentFolder, string folderName,
|
||||||
|
@ -560,39 +608,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region MobileDevice
|
|
||||||
|
|
||||||
[WebMethod]
|
|
||||||
public ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId)
|
|
||||||
{
|
|
||||||
return ExchangeServerController.GetMobileDevices(itemId, accountId);
|
|
||||||
}
|
|
||||||
|
|
||||||
[WebMethod]
|
|
||||||
public ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId)
|
|
||||||
{
|
|
||||||
return ExchangeServerController.GetMobileDevice(itemId, deviceId);
|
|
||||||
}
|
|
||||||
|
|
||||||
[WebMethod]
|
|
||||||
public void WipeDataFromDevice(int itemId, string deviceId)
|
|
||||||
{
|
|
||||||
ExchangeServerController.WipeDataFromDevice(itemId, deviceId);
|
|
||||||
}
|
|
||||||
|
|
||||||
[WebMethod]
|
|
||||||
public void CancelRemoteWipeRequest(int itemId, string deviceId)
|
|
||||||
{
|
|
||||||
ExchangeServerController.CancelRemoteWipeRequest(itemId, deviceId);
|
|
||||||
}
|
|
||||||
|
|
||||||
[WebMethod]
|
|
||||||
public void RemoveDevice(int itemId, string deviceId)
|
|
||||||
{
|
|
||||||
ExchangeServerController.RemoveDevice(itemId, deviceId);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
// Copyright (c) 2011, Outercurve Foundation.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
@ -97,6 +97,13 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return OrganizationController.GetOrganization(itemId);
|
return OrganizationController.GetOrganization(itemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int GetAccountIdByUserPrincipalName(int itemId, string userPrincipalName)
|
||||||
|
{
|
||||||
|
return OrganizationController.GetAccountIdByUserPrincipalName(itemId, userPrincipalName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,12 +139,19 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
#region Users
|
#region Users
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int CreateUser(int itemId, string displayName, string name, string domain, string password, bool sendNotification, string to)
|
public int CreateUser(int itemId, string displayName, string name, string domain, string password, string subscriberNumber, bool sendNotification, string to)
|
||||||
{
|
{
|
||||||
string accountName;
|
string accountName;
|
||||||
return OrganizationController.CreateUser(itemId, displayName, name, domain, password, true, sendNotification, to, out accountName);
|
return OrganizationController.CreateUser(itemId, displayName, name, domain, password, subscriberNumber, true, sendNotification, to, out accountName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int ImportUser(int itemId, string accountName, string displayName, string name, string domain, string password, string subscriberNumber)
|
||||||
|
{
|
||||||
|
return OrganizationController.ImportUser(itemId, accountName, displayName, name, domain, password, subscriberNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public OrganizationUsersPaged GetOrganizationUsersPaged(int itemId, string filterColumn, string filterValue, string sortColumn,
|
public OrganizationUsersPaged GetOrganizationUsersPaged(int itemId, string filterColumn, string filterValue, string sortColumn,
|
||||||
int startRow, int maximumRows)
|
int startRow, int maximumRows)
|
||||||
|
@ -157,14 +171,14 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
string lastName, string address, string city, string state, string zip, string country,
|
string lastName, string address, string city, string state, string zip, string country,
|
||||||
string jobTitle, string company, string department, string office, string managerAccountName,
|
string jobTitle, string company, string department, string office, string managerAccountName,
|
||||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
string businessPhone, string fax, string homePhone, string mobilePhone, string pager,
|
||||||
string webPage, string notes, string externalEmail)
|
string webPage, string notes, string externalEmail, string subscriberNumber)
|
||||||
{
|
{
|
||||||
return OrganizationController.SetUserGeneralSettings(itemId, accountId, displayName,
|
return OrganizationController.SetUserGeneralSettings(itemId, accountId, displayName,
|
||||||
password, hideAddressBook, disabled, locked, firstName, initials,
|
password, hideAddressBook, disabled, locked, firstName, initials,
|
||||||
lastName, address, city, state, zip, country,
|
lastName, address, city, state, zip, country,
|
||||||
jobTitle, company, department, office, managerAccountName,
|
jobTitle, company, department, office, managerAccountName,
|
||||||
businessPhone, fax, homePhone, mobilePhone, pager,
|
businessPhone, fax, homePhone, mobilePhone, pager,
|
||||||
webPage, notes, externalEmail);
|
webPage, notes, externalEmail, subscriberNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
// Copyright (c) 2011, Outercurve Foundation.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
@ -150,12 +150,25 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetADObjectPropertyValue(DirectoryEntry oDE, string name, object value)
|
public static void SetADObjectPropertyValue(DirectoryEntry oDE, string name, string value)
|
||||||
{
|
{
|
||||||
PropertyValueCollection collection = oDE.Properties[name];
|
PropertyValueCollection collection = oDE.Properties[name];
|
||||||
collection.Value = value;
|
collection.Value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetADObjectPropertyValue(DirectoryEntry oDE, string name, Guid value)
|
||||||
|
{
|
||||||
|
PropertyValueCollection collection = oDE.Properties[name];
|
||||||
|
collection.Value = value.ToByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearADObjectPropertyValue(DirectoryEntry oDE, string name)
|
||||||
|
{
|
||||||
|
PropertyValueCollection collection = oDE.Properties[name];
|
||||||
|
collection.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static object GetADObjectProperty(DirectoryEntry entry, string name)
|
public static object GetADObjectProperty(DirectoryEntry entry, string name)
|
||||||
{
|
{
|
||||||
return entry.Properties.Contains(name) ? entry.Properties[name][0] : null;
|
return entry.Properties.Contains(name) ? entry.Properties[name][0] : null;
|
||||||
|
@ -254,11 +267,20 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static string CreateUser(string path, string user, string displayName, string password, bool enabled)
|
public static string CreateUser(string path, string user, string displayName, string password, bool enabled)
|
||||||
|
{
|
||||||
|
return CreateUser(path, "", user, displayName, password, enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CreateUser(string path, string upn, string user, string displayName, string password, bool enabled)
|
||||||
{
|
{
|
||||||
DirectoryEntry currentADObject = new DirectoryEntry(path);
|
DirectoryEntry currentADObject = new DirectoryEntry(path);
|
||||||
|
|
||||||
DirectoryEntry newUserObject = currentADObject.Children.Add("CN=" + user, "User");
|
string cn = string.Empty;
|
||||||
|
if (string.IsNullOrEmpty(upn)) cn = user; else cn = upn;
|
||||||
|
|
||||||
|
DirectoryEntry newUserObject = currentADObject.Children.Add("CN=" + cn, "User");
|
||||||
|
|
||||||
newUserObject.Properties[ADAttributes.SAMAccountName].Add(user);
|
newUserObject.Properties[ADAttributes.SAMAccountName].Add(user);
|
||||||
SetADObjectProperty(newUserObject, ADAttributes.DisplayName, displayName);
|
SetADObjectProperty(newUserObject, ADAttributes.DisplayName, displayName);
|
||||||
|
|
|
@ -37,6 +37,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
int accountId;
|
int accountId;
|
||||||
int itemId;
|
int itemId;
|
||||||
int packageId;
|
int packageId;
|
||||||
|
string subscriberNumber;
|
||||||
ExchangeAccountType accountType;
|
ExchangeAccountType accountType;
|
||||||
string accountName;
|
string accountName;
|
||||||
string displayName;
|
string displayName;
|
||||||
|
@ -45,6 +46,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
MailboxManagerActions mailboxManagerActions;
|
MailboxManagerActions mailboxManagerActions;
|
||||||
string accountPassword;
|
string accountPassword;
|
||||||
string samAccountName;
|
string samAccountName;
|
||||||
|
int mailboxPlanId;
|
||||||
|
string mailboxPlan;
|
||||||
string publicFolderPermission;
|
string publicFolderPermission;
|
||||||
|
|
||||||
public int AccountId
|
public int AccountId
|
||||||
|
@ -113,10 +116,31 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { this.mailboxManagerActions = value; }
|
set { this.mailboxManagerActions = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int MailboxPlanId
|
||||||
|
{
|
||||||
|
get { return this.mailboxPlanId; }
|
||||||
|
set { this.mailboxPlanId = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string MailboxPlan
|
||||||
|
{
|
||||||
|
get { return this.mailboxPlan; }
|
||||||
|
set { this.mailboxPlan = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string SubscriberNumber
|
||||||
|
{
|
||||||
|
get { return this.subscriberNumber; }
|
||||||
|
set { this.subscriberNumber = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public string PublicFolderPermission
|
public string PublicFolderPermission
|
||||||
{
|
{
|
||||||
get { return this.publicFolderPermission; }
|
get { return this.publicFolderPermission; }
|
||||||
set { this.publicFolderPermission = value; }
|
set { this.publicFolderPermission = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string country;
|
string country;
|
||||||
|
|
||||||
string notes;
|
string notes;
|
||||||
|
string sAMAccountName;
|
||||||
private int useMapiRichTextFormat;
|
private int useMapiRichTextFormat;
|
||||||
|
|
||||||
ExchangeAccount[] acceptAccounts;
|
ExchangeAccount[] acceptAccounts;
|
||||||
|
@ -236,5 +237,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
get { return useMapiRichTextFormat; }
|
get { return useMapiRichTextFormat; }
|
||||||
set { useMapiRichTextFormat = value; }
|
set { useMapiRichTextFormat = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string SAMAccountName
|
||||||
|
{
|
||||||
|
get { return sAMAccountName; }
|
||||||
|
set { sAMAccountName = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,5 +99,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string SAMAccountName
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,160 @@
|
||||||
|
// 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.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
{
|
||||||
|
public class ExchangeMailboxPlan
|
||||||
|
{
|
||||||
|
int mailboxPlanId;
|
||||||
|
string mailboxPlan;
|
||||||
|
int mailboxSizeMB;
|
||||||
|
int maxRecipients;
|
||||||
|
int maxSendMessageSizeKB;
|
||||||
|
int maxReceiveMessageSizeKB;
|
||||||
|
|
||||||
|
bool enablePOP;
|
||||||
|
bool enableIMAP;
|
||||||
|
bool enableOWA;
|
||||||
|
bool enableMAPI;
|
||||||
|
bool enableActiveSync;
|
||||||
|
|
||||||
|
int issueWarningPct;
|
||||||
|
int prohibitSendPct;
|
||||||
|
int prohibitSendReceivePct;
|
||||||
|
int keepDeletedItemsDays;
|
||||||
|
bool isDefault;
|
||||||
|
bool hideFromAddressBook;
|
||||||
|
|
||||||
|
public int MailboxPlanId
|
||||||
|
{
|
||||||
|
get { return this.mailboxPlanId; }
|
||||||
|
set { this.mailboxPlanId = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string MailboxPlan
|
||||||
|
{
|
||||||
|
get { return this.mailboxPlan; }
|
||||||
|
set { this.mailboxPlan = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MailboxSizeMB
|
||||||
|
{
|
||||||
|
get { return this.mailboxSizeMB; }
|
||||||
|
set { this.mailboxSizeMB = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsDefault
|
||||||
|
{
|
||||||
|
get { return this.isDefault; }
|
||||||
|
set { this.isDefault = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MaxRecipients
|
||||||
|
{
|
||||||
|
get { return this.maxRecipients; }
|
||||||
|
set { this.maxRecipients = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MaxSendMessageSizeKB
|
||||||
|
{
|
||||||
|
get { return this.maxSendMessageSizeKB; }
|
||||||
|
set { this.maxSendMessageSizeKB = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MaxReceiveMessageSizeKB
|
||||||
|
{
|
||||||
|
get { return this.maxReceiveMessageSizeKB; }
|
||||||
|
set { this.maxReceiveMessageSizeKB = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EnablePOP
|
||||||
|
{
|
||||||
|
get { return this.enablePOP; }
|
||||||
|
set { this.enablePOP = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EnableIMAP
|
||||||
|
{
|
||||||
|
get { return this.enableIMAP; }
|
||||||
|
set { this.enableIMAP = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EnableOWA
|
||||||
|
{
|
||||||
|
get { return this.enableOWA; }
|
||||||
|
set { this.enableOWA = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EnableMAPI
|
||||||
|
{
|
||||||
|
get { return this.enableMAPI; }
|
||||||
|
set { this.enableMAPI = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EnableActiveSync
|
||||||
|
{
|
||||||
|
get { return this.enableActiveSync; }
|
||||||
|
set { this.enableActiveSync = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int IssueWarningPct
|
||||||
|
{
|
||||||
|
get { return this.issueWarningPct; }
|
||||||
|
set { this.issueWarningPct = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ProhibitSendPct
|
||||||
|
{
|
||||||
|
get { return this.prohibitSendPct; }
|
||||||
|
set { this.prohibitSendPct = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ProhibitSendReceivePct
|
||||||
|
{
|
||||||
|
get { return this.prohibitSendReceivePct; }
|
||||||
|
set { this.prohibitSendReceivePct = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int KeepDeletedItemsDays
|
||||||
|
{
|
||||||
|
get { return this.keepDeletedItemsDays; }
|
||||||
|
set { this.keepDeletedItemsDays = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HideFromAddressBook
|
||||||
|
{
|
||||||
|
get { return this.hideFromAddressBook; }
|
||||||
|
set { this.hideFromAddressBook = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,17 +35,18 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
// Organizations
|
// Organizations
|
||||||
|
|
||||||
string CreateMailEnableUser(string upn, string organizationId, string organizationDistinguishedName, ExchangeAccountType accountType,
|
string CreateMailEnableUser(string upn, string organizationId, string organizationDistinguishedName, ExchangeAccountType accountType,
|
||||||
string mailboxDatabase, string offlineAddressBook,
|
string mailboxDatabase, string offlineAddressBook, string addressBookPolicy,
|
||||||
string accountName, bool enablePOP, bool enableIMAP,
|
string accountName, bool enablePOP, bool enableIMAP,
|
||||||
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB,
|
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB,
|
||||||
int keepDeletedItemsDays);
|
int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool isConsumer);
|
||||||
|
|
||||||
Organization ExtendToExchangeOrganization(string organizationId, string securityGroup);
|
Organization ExtendToExchangeOrganization(string organizationId, string securityGroup, bool IsConsumer);
|
||||||
string GetOABVirtualDirectory();
|
string GetOABVirtualDirectory();
|
||||||
Organization CreateOrganizationOfflineAddressBook(string organizationId, string securityGroup, string oabVirtualDir);
|
Organization CreateOrganizationOfflineAddressBook(string organizationId, string securityGroup, string oabVirtualDir);
|
||||||
|
Organization CreateOrganizationAddressBookPolicy(string organizationId, string gal, string addressBook, string roomList, string oab);
|
||||||
void UpdateOrganizationOfflineAddressBook(string id);
|
void UpdateOrganizationOfflineAddressBook(string id);
|
||||||
bool DeleteOrganization(string organizationId, string distinguishedName, string globalAddressList, string addressList, string roomsAddressList, string offlineAddressBook, string securityGroup);
|
bool DeleteOrganization(string organizationId, string distinguishedName, string globalAddressList, string addressList, string roomList, string offlineAddressBook, string securityGroup, string addressBookPolicy);
|
||||||
void SetOrganizationStorageLimits(string organizationDistinguishedName, int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays);
|
void SetOrganizationStorageLimits(string organizationDistinguishedName, int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays);
|
||||||
ExchangeItemStatistics[] GetMailboxesStatistics(string organizationDistinguishedName);
|
ExchangeItemStatistics[] GetMailboxesStatistics(string organizationDistinguishedName);
|
||||||
|
|
||||||
|
@ -55,16 +56,16 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string[] GetAuthoritativeDomains();
|
string[] GetAuthoritativeDomains();
|
||||||
|
|
||||||
// Mailboxes
|
// Mailboxes
|
||||||
string CreateMailbox(string organizationId, string organizationDistinguishedName, string mailboxDatabase, string securityGroup, string offlineAddressBook, ExchangeAccountType accountType, string displayName, string accountName, string name, string domain, string password, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
//string CreateMailbox(string organizationId, string organizationDistinguishedName, string mailboxDatabase, string securityGroup, string offlineAddressBook, string addressBookPolicy, ExchangeAccountType accountType, string displayName, string accountName, string name, string domain, string password, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays);
|
// int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB,bool hideFromAddressBook);
|
||||||
void DeleteMailbox(string accountName);
|
void DeleteMailbox(string accountName);
|
||||||
void DisableMailbox(string id);
|
void DisableMailbox(string id);
|
||||||
ExchangeMailbox GetMailboxGeneralSettings(string accountName);
|
ExchangeMailbox GetMailboxGeneralSettings(string accountName);
|
||||||
void SetMailboxGeneralSettings(string accountName, string displayName, string password, bool hideFromAddressBook, bool disabled, string firstName, string initials, string lastName, string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office, string managerAccountName, string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes);
|
void SetMailboxGeneralSettings(string accountName, bool hideFromAddressBook, bool disabled);
|
||||||
ExchangeMailbox GetMailboxMailFlowSettings(string accountName);
|
ExchangeMailbox GetMailboxMailFlowSettings(string accountName);
|
||||||
void SetMailboxMailFlowSettings(string accountName, bool enableForwarding, string forwardingAccountName, bool forwardToBoth, string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool requireSenderAuthentication);
|
void SetMailboxMailFlowSettings(string accountName, bool enableForwarding, string forwardingAccountName, bool forwardToBoth, string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication);
|
||||||
ExchangeMailbox GetMailboxAdvancedSettings(string accountName);
|
ExchangeMailbox GetMailboxAdvancedSettings(string accountName);
|
||||||
void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays);
|
void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync, int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB);
|
||||||
ExchangeEmailAddress[] GetMailboxEmailAddresses(string accountName);
|
ExchangeEmailAddress[] GetMailboxEmailAddresses(string accountName);
|
||||||
void SetMailboxEmailAddresses(string accountName, string[] emailAddresses);
|
void SetMailboxEmailAddresses(string accountName, string[] emailAddresses);
|
||||||
void SetMailboxPrimaryEmailAddress(string accountName, string emailAddress);
|
void SetMailboxPrimaryEmailAddress(string accountName, string emailAddress);
|
||||||
|
@ -81,19 +82,19 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
void SetContactMailFlowSettings(string accountName, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication);
|
void SetContactMailFlowSettings(string accountName, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication);
|
||||||
|
|
||||||
// Distribution Lists
|
// Distribution Lists
|
||||||
void CreateDistributionList(string organizationId, string organizationDistinguishedName, string displayName, string accountName, string name, string domain, string managedBy);
|
void CreateDistributionList(string organizationId, string organizationDistinguishedName, string displayName, string accountName, string name, string domain, string managedBy, string[] addressLists);
|
||||||
void DeleteDistributionList(string accountName);
|
void DeleteDistributionList(string accountName);
|
||||||
ExchangeDistributionList GetDistributionListGeneralSettings(string accountName);
|
ExchangeDistributionList GetDistributionListGeneralSettings(string accountName);
|
||||||
void SetDistributionListGeneralSettings(string accountName, string displayName, bool hideFromAddressBook, string managedBy, string[] memebers, string notes);
|
void SetDistributionListGeneralSettings(string accountName, string displayName, bool hideFromAddressBook, string managedBy, string[] memebers, string notes, string[] addressLists);
|
||||||
void AddDistributionListMembers(string accountName, string[] memberAccounts);
|
void AddDistributionListMembers(string accountName, string[] memberAccounts, string[] addressLists);
|
||||||
void RemoveDistributionListMembers(string accountName, string[] memberAccounts);
|
void RemoveDistributionListMembers(string accountName, string[] memberAccounts, string[] addressLists);
|
||||||
ExchangeDistributionList GetDistributionListMailFlowSettings(string accountName);
|
ExchangeDistributionList GetDistributionListMailFlowSettings(string accountName);
|
||||||
void SetDistributionListMailFlowSettings(string accountName, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication);
|
void SetDistributionListMailFlowSettings(string accountName, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication, string[] addressLists);
|
||||||
ExchangeEmailAddress[] GetDistributionListEmailAddresses(string accountName);
|
ExchangeEmailAddress[] GetDistributionListEmailAddresses(string accountName);
|
||||||
void SetDistributionListEmailAddresses(string accountName, string[] emailAddresses);
|
void SetDistributionListEmailAddresses(string accountName, string[] emailAddresses, string[] addressLists);
|
||||||
void SetDistributionListPrimaryEmailAddress(string accountName, string emailAddress);
|
void SetDistributionListPrimaryEmailAddress(string accountName, string emailAddress, string[] addressLists);
|
||||||
ExchangeDistributionList GetDistributionListPermissions(string organizationId, string accountName);
|
ExchangeDistributionList GetDistributionListPermissions(string organizationId, string accountName);
|
||||||
void SetDistributionListPermissions(string organizationId, string accountName, string[] sendAsAccounts, string[] sendOnBehalfAccounts);
|
void SetDistributionListPermissions(string organizationId, string accountName, string[] sendAsAccounts, string[] sendOnBehalfAccounts, string[] addressLists);
|
||||||
|
|
||||||
// Public Folders
|
// Public Folders
|
||||||
void CreatePublicFolder(string organizationId, string securityGroup, string parentFolder, string folderName, bool mailEnabled, string accountName, string name, string domain);
|
void CreatePublicFolder(string organizationId, string securityGroup, string parentFolder, string folderName, bool mailEnabled, string accountName, string name, string domain);
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
void DeleteOrganization(string organizationId);
|
void DeleteOrganization(string organizationId);
|
||||||
|
|
||||||
void CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled);
|
int CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled);
|
||||||
|
|
||||||
void DeleteUser(string loginName, string organizationId);
|
void DeleteUser(string loginName, string organizationId);
|
||||||
|
|
||||||
|
@ -58,5 +58,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
void CreateOrganizationDomain(string organizationDistinguishedName, string domain);
|
void CreateOrganizationDomain(string organizationDistinguishedName, string domain);
|
||||||
|
|
||||||
PasswordPolicyResult GetPasswordPolicy();
|
PasswordPolicyResult GetPasswordPolicy();
|
||||||
|
|
||||||
|
string GetSamAccountNameByUserPrincipalName(string organizationId, string userPrincipalName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,12 +41,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
private string addressList;
|
private string addressList;
|
||||||
private string roomsAddressList;
|
private string roomsAddressList;
|
||||||
private string globalAddressList;
|
private string globalAddressList;
|
||||||
|
private string addressBookPolicy;
|
||||||
|
|
||||||
private string database;
|
private string database;
|
||||||
private string securityGroup;
|
private string securityGroup;
|
||||||
|
private string lyncTenantId;
|
||||||
private int diskSpace;
|
private int diskSpace;
|
||||||
private int issueWarningKB;
|
|
||||||
private int prohibitSendKB;
|
|
||||||
private int prohibitSendReceiveKB;
|
|
||||||
private int keepDeletedItemsDays;
|
private int keepDeletedItemsDays;
|
||||||
|
|
||||||
|
|
||||||
|
@ -182,6 +182,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { globalAddressList = value; }
|
set { globalAddressList = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Persistent]
|
||||||
|
public string AddressBookPolicy
|
||||||
|
{
|
||||||
|
get { return addressBookPolicy; }
|
||||||
|
set { addressBookPolicy = value; }
|
||||||
|
}
|
||||||
|
|
||||||
[Persistent]
|
[Persistent]
|
||||||
public string Database
|
public string Database
|
||||||
{
|
{
|
||||||
|
@ -203,27 +210,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { diskSpace = value; }
|
set { diskSpace = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
[Persistent]
|
|
||||||
public int IssueWarningKB
|
|
||||||
{
|
|
||||||
get { return issueWarningKB; }
|
|
||||||
set { issueWarningKB = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
[Persistent]
|
|
||||||
public int ProhibitSendKB
|
|
||||||
{
|
|
||||||
get { return prohibitSendKB; }
|
|
||||||
set { prohibitSendKB = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
[Persistent]
|
|
||||||
public int ProhibitSendReceiveKB
|
|
||||||
{
|
|
||||||
get { return prohibitSendReceiveKB; }
|
|
||||||
set { prohibitSendReceiveKB = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
[Persistent]
|
[Persistent]
|
||||||
public int KeepDeletedItemsDays
|
public int KeepDeletedItemsDays
|
||||||
{
|
{
|
||||||
|
@ -233,5 +219,15 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
[Persistent]
|
[Persistent]
|
||||||
public bool IsOCSOrganization { get; set; }
|
public bool IsOCSOrganization { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
[Persistent]
|
||||||
|
public string LyncTenantId
|
||||||
|
{
|
||||||
|
get { return lyncTenantId; }
|
||||||
|
set { lyncTenantId = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
private int accountId;
|
private int accountId;
|
||||||
private int itemId;
|
private int itemId;
|
||||||
private int packageId;
|
private int packageId;
|
||||||
|
private string subscriberNumber;
|
||||||
|
|
||||||
private string primaryEmailAddress;
|
private string primaryEmailAddress;
|
||||||
private string accountPassword;
|
private string accountPassword;
|
||||||
|
@ -298,5 +299,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { isBlackBerryUser = value; }
|
set { isBlackBerryUser = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string SubscriberNumber
|
||||||
|
{
|
||||||
|
get { return subscriberNumber; }
|
||||||
|
set { subscriberNumber = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
{
|
||||||
|
public class TransactionAction
|
||||||
|
{
|
||||||
|
private TransactionActionTypes actionType;
|
||||||
|
|
||||||
|
public TransactionActionTypes ActionType
|
||||||
|
{
|
||||||
|
get { return actionType; }
|
||||||
|
set { actionType = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string id;
|
||||||
|
|
||||||
|
public string Id
|
||||||
|
{
|
||||||
|
get { return id; }
|
||||||
|
set { id = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string suffix;
|
||||||
|
|
||||||
|
public string Suffix
|
||||||
|
{
|
||||||
|
get { return suffix; }
|
||||||
|
set { suffix = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string account;
|
||||||
|
|
||||||
|
public string Account
|
||||||
|
{
|
||||||
|
get { return account; }
|
||||||
|
set { account = value; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TransactionActionTypes
|
||||||
|
{
|
||||||
|
CreateOrganizationUnit,
|
||||||
|
CreateGlobalAddressList,
|
||||||
|
CreateAddressList,
|
||||||
|
CreateAddressBookPolicy,
|
||||||
|
CreateOfflineAddressBook,
|
||||||
|
CreateDistributionGroup,
|
||||||
|
EnableDistributionGroup,
|
||||||
|
CreateAcceptedDomain,
|
||||||
|
AddUPNSuffix,
|
||||||
|
CreateMailbox,
|
||||||
|
CreateContact,
|
||||||
|
CreatePublicFolder,
|
||||||
|
CreateActiveSyncPolicy,
|
||||||
|
AddMailboxFullAccessPermission,
|
||||||
|
AddSendAsPermission,
|
||||||
|
RemoveMailboxFullAccessPermission,
|
||||||
|
RemoveSendAsPermission,
|
||||||
|
EnableMailbox,
|
||||||
|
LyncNewSipDomain,
|
||||||
|
LyncNewSimpleUrl,
|
||||||
|
LyncNewUser,
|
||||||
|
LyncNewConferencingPolicy,
|
||||||
|
LyncNewExternalAccessPolicy,
|
||||||
|
LyncNewMobilityPolicy
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -79,6 +79,8 @@
|
||||||
<Compile Include="HostedSolution\BlackBerryErrorsCodes.cs" />
|
<Compile Include="HostedSolution\BlackBerryErrorsCodes.cs" />
|
||||||
<Compile Include="HostedSolution\BlackBerryStatsItem.cs" />
|
<Compile Include="HostedSolution\BlackBerryStatsItem.cs" />
|
||||||
<Compile Include="HostedSolution\BlackBerryUserDeleteState.cs" />
|
<Compile Include="HostedSolution\BlackBerryUserDeleteState.cs" />
|
||||||
|
<Compile Include="HostedSolution\ExchangeMailboxPlan.cs" />
|
||||||
|
<Compile Include="HostedSolution\TransactionAction.cs" />
|
||||||
<Compile Include="ResultObjects\HeliconApe.cs" />
|
<Compile Include="ResultObjects\HeliconApe.cs" />
|
||||||
<Compile Include="HostedSolution\ExchangeMobileDevice.cs" />
|
<Compile Include="HostedSolution\ExchangeMobileDevice.cs" />
|
||||||
<Compile Include="HostedSolution\IOCSEdgeServer.cs" />
|
<Compile Include="HostedSolution\IOCSEdgeServer.cs" />
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -167,7 +167,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
return runspace;
|
return runspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Assembly ResolveExchangeAssembly(object p, ResolveEventArgs args)
|
internal static Assembly ResolveExchangeAssembly(object p, ResolveEventArgs args)
|
||||||
{
|
{
|
||||||
//Add path for the Exchange 2007 DLLs
|
//Add path for the Exchange 2007 DLLs
|
||||||
if (args.Name.Contains("Microsoft.Exchange"))
|
if (args.Name.Contains("Microsoft.Exchange"))
|
||||||
|
|
|
@ -0,0 +1,753 @@
|
||||||
|
// 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.IO;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Text;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
using System.DirectoryServices;
|
||||||
|
using System.Security;
|
||||||
|
using System.Security.Principal;
|
||||||
|
using System.Security.AccessControl;
|
||||||
|
|
||||||
|
using System.Management.Automation;
|
||||||
|
using System.Management.Automation.Runspaces;
|
||||||
|
|
||||||
|
using WebsitePanel.Providers;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.Providers.Utils;
|
||||||
|
using WebsitePanel.Server.Utils;
|
||||||
|
using Microsoft.Exchange.Data.Directory.Recipient;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
|
||||||
|
using Microsoft.Exchange.Data;
|
||||||
|
using Microsoft.Exchange.Data.Directory;
|
||||||
|
using Microsoft.Exchange.Data.Storage;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
{
|
||||||
|
public class Exchange2010SP2 : Exchange2010
|
||||||
|
{
|
||||||
|
#region Static constructor
|
||||||
|
|
||||||
|
static private Hashtable htBbalancer = new Hashtable();
|
||||||
|
|
||||||
|
static Exchange2010SP2()
|
||||||
|
{
|
||||||
|
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveExchangeAssembly);
|
||||||
|
ExchangeRegistryPath = "SOFTWARE\\Microsoft\\ExchangeServer\\v14\\Setup";
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Organization
|
||||||
|
/// <summary>
|
||||||
|
/// Creates organization on Mail Server
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="organizationId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
internal override Organization ExtendToExchangeOrganizationInternal(string organizationId, string securityGroup, bool IsConsumer)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("CreateOrganizationInternal");
|
||||||
|
ExchangeLog.DebugInfo(" Organization Id: {0}", organizationId);
|
||||||
|
|
||||||
|
ExchangeTransaction transaction = StartTransaction();
|
||||||
|
Organization info = new Organization();
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
string server = GetServerName();
|
||||||
|
string securityGroupPath = AddADPrefix(securityGroup);
|
||||||
|
|
||||||
|
//Create mail enabled organization security group
|
||||||
|
EnableMailSecurityDistributionGroup(runSpace, securityGroup, organizationId);
|
||||||
|
transaction.RegisterMailEnabledDistributionGroup(securityGroup);
|
||||||
|
UpdateSecurityDistributionGroup(runSpace, securityGroup, organizationId, IsConsumer);
|
||||||
|
|
||||||
|
//create GAL
|
||||||
|
string galId = CreateGlobalAddressList(runSpace, organizationId);
|
||||||
|
transaction.RegisterNewGlobalAddressList(galId);
|
||||||
|
ExchangeLog.LogInfo(" Global Address List: {0}", galId);
|
||||||
|
UpdateGlobalAddressList(runSpace, galId, securityGroupPath);
|
||||||
|
|
||||||
|
//create AL
|
||||||
|
string alId = CreateAddressList(runSpace, organizationId);
|
||||||
|
transaction.RegisterNewAddressList(alId);
|
||||||
|
ExchangeLog.LogInfo(" Address List: {0}", alId);
|
||||||
|
UpdateAddressList(runSpace, alId, securityGroupPath);
|
||||||
|
|
||||||
|
//create RAL
|
||||||
|
string ralId = CreateRoomsAddressList(runSpace, organizationId);
|
||||||
|
transaction.RegisterNewRoomsAddressList(ralId);
|
||||||
|
ExchangeLog.LogInfo(" Rooms Address List: {0}", ralId);
|
||||||
|
UpdateAddressList(runSpace, ralId, securityGroupPath);
|
||||||
|
|
||||||
|
//create ActiveSync policy
|
||||||
|
string asId = CreateActiveSyncPolicy(runSpace, organizationId);
|
||||||
|
transaction.RegisterNewActiveSyncPolicy(asId);
|
||||||
|
ExchangeLog.LogInfo(" ActiveSync Policy: {0}", asId);
|
||||||
|
|
||||||
|
info.AddressList = alId;
|
||||||
|
info.GlobalAddressList = galId;
|
||||||
|
info.RoomsAddressList = ralId;
|
||||||
|
info.OrganizationId = organizationId;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogError("CreateOrganizationInternal", ex);
|
||||||
|
RollbackTransaction(transaction);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("CreateOrganizationInternal");
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal override Organization CreateOrganizationAddressBookPolicyInternal(string organizationId, string gal, string addressBook, string roomList, string oab)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("CreateOrganizationAddressBookPolicyInternal");
|
||||||
|
ExchangeLog.LogInfo(" Organization Id: {0}", organizationId);
|
||||||
|
ExchangeLog.LogInfo(" GAL: {0}", gal);
|
||||||
|
ExchangeLog.LogInfo(" AddressBook: {0}", addressBook);
|
||||||
|
ExchangeLog.LogInfo(" RoomList: {0}", roomList);
|
||||||
|
ExchangeLog.LogInfo(" OAB: {0}", oab);
|
||||||
|
|
||||||
|
ExchangeTransaction transaction = StartTransaction();
|
||||||
|
|
||||||
|
Organization info = new Organization();
|
||||||
|
string policyName = GetAddressBookPolicyName(organizationId);
|
||||||
|
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("New-AddressBookPolicy");
|
||||||
|
cmd.Parameters.Add("Name", policyName);
|
||||||
|
cmd.Parameters.Add("AddressLists", addressBook);
|
||||||
|
cmd.Parameters.Add("RoomList", roomList);
|
||||||
|
cmd.Parameters.Add("GlobalAddressList", gal);
|
||||||
|
cmd.Parameters.Add("OfflineAddressBook", oab);
|
||||||
|
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
info.AddressBookPolicy = GetResultObjectDN(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogError("CreateOrganizationAddressBookPolicyInternal", ex);
|
||||||
|
RollbackTransaction(transaction);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("CreateOrganizationAddressBookPolicyInternal");
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override bool DeleteOrganizationInternal(string organizationId, string distinguishedName,
|
||||||
|
string globalAddressList, string addressList, string roomList, string offlineAddressBook, string securityGroup, string addressBookPolicy)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("DeleteOrganizationInternal");
|
||||||
|
bool ret = true;
|
||||||
|
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
|
||||||
|
string ou = ConvertADPathToCanonicalName(distinguishedName);
|
||||||
|
|
||||||
|
if (!DeleteOrganizationMailboxes(runSpace, ou))
|
||||||
|
ret = false;
|
||||||
|
|
||||||
|
if (!DeleteOrganizationContacts(runSpace, ou))
|
||||||
|
ret = false;
|
||||||
|
|
||||||
|
if (!DeleteOrganizationDistributionLists(runSpace, ou))
|
||||||
|
ret = false;
|
||||||
|
|
||||||
|
//delete AddressBookPolicy
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(addressBookPolicy))
|
||||||
|
DeleteAddressBookPolicy(runSpace, addressBookPolicy);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not delete AddressBook Policy " + addressBookPolicy, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//delete OAB
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(offlineAddressBook))
|
||||||
|
DeleteOfflineAddressBook(runSpace, offlineAddressBook);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not delete Offline Address Book " + offlineAddressBook, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//delete AL
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(addressList))
|
||||||
|
DeleteAddressList(runSpace, addressList);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not delete Address List " + addressList, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//delete RL
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(roomList))
|
||||||
|
DeleteAddressList(runSpace, roomList);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not delete Address List " + roomList, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//delete GAL
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(globalAddressList))
|
||||||
|
DeleteGlobalAddressList(runSpace, globalAddressList);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not delete Global Address List " + globalAddressList, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//delete ActiveSync policy
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteActiveSyncPolicy(runSpace, organizationId);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not delete ActiveSyncPolicy " + organizationId, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
//disable mail security distribution group
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DisableMailSecurityDistributionGroup(runSpace, securityGroup);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("Could not disable mail security distribution group " + securityGroup, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ret = false;
|
||||||
|
ExchangeLog.LogError("DeleteOrganizationInternal", ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("DeleteOrganizationInternal");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal override void DeleteAddressBookPolicy(Runspace runSpace, string id)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("DeleteAddressBookPolicy");
|
||||||
|
//if (id != "IsConsumer")
|
||||||
|
//{
|
||||||
|
Command cmd = new Command("Remove-AddressBookPolicy");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("Confirm", false);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
//}
|
||||||
|
ExchangeLog.LogEnd("DeleteAddressBookPolicy");
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Mailbox
|
||||||
|
internal override string CreateMailEnableUserInternal(string upn, string organizationId, string organizationDistinguishedName, ExchangeAccountType accountType,
|
||||||
|
string mailboxDatabase, string offlineAddressBook, string addressBookPolicy,
|
||||||
|
string accountName, bool enablePOP, bool enableIMAP,
|
||||||
|
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
|
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays,
|
||||||
|
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool IsConsumer)
|
||||||
|
{
|
||||||
|
|
||||||
|
ExchangeLog.LogStart("CreateMailEnableUserInternal");
|
||||||
|
ExchangeLog.DebugInfo("Organization Id: {0}", organizationId);
|
||||||
|
|
||||||
|
string ret = null;
|
||||||
|
ExchangeTransaction transaction = StartTransaction();
|
||||||
|
Runspace runSpace = null;
|
||||||
|
|
||||||
|
int attempts = 0;
|
||||||
|
string id = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
Command cmd = null;
|
||||||
|
Collection<PSObject> result = null;
|
||||||
|
|
||||||
|
//try to enable mail user for 10 times
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//create mailbox
|
||||||
|
cmd = new Command("Enable-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", upn);
|
||||||
|
cmd.Parameters.Add("Alias", accountName);
|
||||||
|
string database = GetDatabase(runSpace, PrimaryDomainController, mailboxDatabase);
|
||||||
|
ExchangeLog.DebugInfo("database: " + database);
|
||||||
|
if (database != string.Empty)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("Database", database);
|
||||||
|
}
|
||||||
|
if (accountType == ExchangeAccountType.Equipment)
|
||||||
|
cmd.Parameters.Add("Equipment");
|
||||||
|
else if (accountType == ExchangeAccountType.Room)
|
||||||
|
cmd.Parameters.Add("Room");
|
||||||
|
|
||||||
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
id = CheckResultObjectDN(result);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogError(ex);
|
||||||
|
}
|
||||||
|
if (id != null)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (attempts > 9)
|
||||||
|
throw new Exception(
|
||||||
|
string.Format("Could not enable mail user '{0}' ", upn));
|
||||||
|
|
||||||
|
attempts++;
|
||||||
|
ExchangeLog.LogWarning("Attempt #{0} to enable mail user failed!", attempts);
|
||||||
|
// wait 5 sec
|
||||||
|
System.Threading.Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
transaction.RegisterEnableMailbox(id);
|
||||||
|
|
||||||
|
string windowsEmailAddress = ObjToString(GetPSObjectProperty(result[0], "WindowsEmailAddress"));
|
||||||
|
|
||||||
|
//update mailbox
|
||||||
|
cmd = new Command("Set-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("OfflineAddressBook", offlineAddressBook);
|
||||||
|
cmd.Parameters.Add("EmailAddressPolicyEnabled", false);
|
||||||
|
cmd.Parameters.Add("CustomAttribute1", organizationId);
|
||||||
|
cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress);
|
||||||
|
cmd.Parameters.Add("PrimarySmtpAddress", upn);
|
||||||
|
cmd.Parameters.Add("WindowsEmailAddress", upn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false));
|
||||||
|
cmd.Parameters.Add("UseDatabaseRetentionDefaults", false);
|
||||||
|
cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB));
|
||||||
|
cmd.Parameters.Add("ProhibitSendQuota", ConvertKBToUnlimited(prohibitSendKB));
|
||||||
|
cmd.Parameters.Add("ProhibitSendReceiveQuota", ConvertKBToUnlimited(prohibitSendReceiveKB));
|
||||||
|
cmd.Parameters.Add("RetainDeletedItemsFor", ConvertDaysToEnhancedTimeSpan(keepDeletedItemsDays));
|
||||||
|
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
||||||
|
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
||||||
|
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
||||||
|
if (IsConsumer) cmd.Parameters.Add("HiddenFromAddressListsEnabled", true);
|
||||||
|
else
|
||||||
|
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
||||||
|
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
//Client Access
|
||||||
|
cmd = new Command("Set-CASMailbox");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("ActiveSyncEnabled", enableActiveSync);
|
||||||
|
if (enableActiveSync)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("ActiveSyncMailboxPolicy", organizationId);
|
||||||
|
}
|
||||||
|
cmd.Parameters.Add("OWAEnabled", enableOWA);
|
||||||
|
cmd.Parameters.Add("MAPIEnabled", enableMAPI);
|
||||||
|
cmd.Parameters.Add("PopEnabled", enablePOP);
|
||||||
|
cmd.Parameters.Add("ImapEnabled", enableIMAP);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
//add to the security group
|
||||||
|
cmd = new Command("Add-DistributionGroupMember");
|
||||||
|
cmd.Parameters.Add("Identity", organizationId);
|
||||||
|
cmd.Parameters.Add("Member", id);
|
||||||
|
cmd.Parameters.Add("BypassSecurityGroupManagerCheck", true);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
if (!IsConsumer)
|
||||||
|
{
|
||||||
|
//Set-MailboxFolderPermission for calendar
|
||||||
|
cmd = new Command("Add-MailboxFolderPermission");
|
||||||
|
cmd.Parameters.Add("Identity", id + ":\\calendar");
|
||||||
|
cmd.Parameters.Add("AccessRights", "Reviewer");
|
||||||
|
cmd.Parameters.Add("User", organizationId);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
cmd = new Command("Set-MailboxFolderPermission");
|
||||||
|
cmd.Parameters.Add("Identity", id + ":\\calendar");
|
||||||
|
cmd.Parameters.Add("AccessRights", "None");
|
||||||
|
cmd.Parameters.Add("User", "Default");
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
ret = string.Format("{0}\\{1}", GetNETBIOSDomainName(), accountName);
|
||||||
|
ExchangeLog.LogEnd("CreateMailEnableUserInternal");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogError("CreateMailEnableUserInternal", ex);
|
||||||
|
RollbackTransaction(transaction);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal override void DisableMailboxInternal(string id)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("DisableMailboxInternal");
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
Command cmd = new Command("Get-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
if (result != null && result.Count > 0)
|
||||||
|
{
|
||||||
|
string upn = ObjToString(GetPSObjectProperty(result[0], "UserPrincipalName"));
|
||||||
|
|
||||||
|
string addressbookPolicy = ObjToString(GetPSObjectProperty(result[0], "AddressBookPolicy"));
|
||||||
|
|
||||||
|
cmd = new Command("Disable-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
cmd.Parameters.Add("Confirm", false);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
if (addressbookPolicy == (upn + " AP"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteAddressBookPolicy(runSpace, upn + " AP");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteGlobalAddressList(runSpace, upn + " GAL");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteAddressList(runSpace, upn + " AL");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("DisableMailboxInternal");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal override void DeleteMailboxInternal(string accountName)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("DeleteMailboxInternal");
|
||||||
|
ExchangeLog.DebugInfo("Account Name: {0}", accountName);
|
||||||
|
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
Command cmd = new Command("Get-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
if (result != null && result.Count > 0)
|
||||||
|
{
|
||||||
|
string upn = ObjToString(GetPSObjectProperty(result[0], "UserPrincipalName"));
|
||||||
|
string addressbookPolicy = ObjToString(GetPSObjectProperty(result[0], "AddressBookPolicy"));
|
||||||
|
|
||||||
|
RemoveMailbox(runSpace, accountName);
|
||||||
|
|
||||||
|
if (addressbookPolicy == (upn + " AP"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteAddressBookPolicy(runSpace, upn + " AP");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteGlobalAddressList(runSpace, upn + " GAL");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DeleteAddressList(runSpace, upn + " AL");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("DeleteMailboxInternal");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal string GetDatabase(Runspace runSpace, string primaryDomainController, string dagName)
|
||||||
|
{
|
||||||
|
string database = string.Empty;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(dagName)) return string.Empty;
|
||||||
|
|
||||||
|
ExchangeLog.LogStart("GetDatabase");
|
||||||
|
ExchangeLog.LogInfo("DAG: " + dagName);
|
||||||
|
|
||||||
|
//Get Dag Servers
|
||||||
|
Collection<PSObject> dags = null;
|
||||||
|
Command cmd = new Command("Get-DatabaseAvailabilityGroup");
|
||||||
|
cmd.Parameters.Add("Identity", dagName);
|
||||||
|
dags = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
if (htBbalancer == null)
|
||||||
|
htBbalancer = new Hashtable();
|
||||||
|
|
||||||
|
if (htBbalancer[dagName] == null)
|
||||||
|
htBbalancer.Add(dagName, 0);
|
||||||
|
|
||||||
|
if (dags != null && dags.Count > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
ADMultiValuedProperty<ADObjectId> servers = (ADMultiValuedProperty<ADObjectId>)GetPSObjectProperty(dags[0], "Servers");
|
||||||
|
|
||||||
|
if (servers != null)
|
||||||
|
{
|
||||||
|
System.Collections.Generic.List<string> lstDatabase = new System.Collections.Generic.List<string>();
|
||||||
|
|
||||||
|
foreach (object objServer in servers)
|
||||||
|
{
|
||||||
|
Collection<PSObject> databases = null;
|
||||||
|
cmd = new Command("Get-MailboxDatabase");
|
||||||
|
cmd.Parameters.Add("Server", ObjToString(objServer));
|
||||||
|
databases = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
foreach (PSObject objDatabase in databases)
|
||||||
|
{
|
||||||
|
if (((bool)GetPSObjectProperty(objDatabase, "IsExcludedFromProvisioning") == false) &&
|
||||||
|
((bool)GetPSObjectProperty(objDatabase, "IsSuspendedFromProvisioning") == false))
|
||||||
|
{
|
||||||
|
string db = ObjToString(GetPSObjectProperty(objDatabase, "Identity"));
|
||||||
|
|
||||||
|
bool bAdd = true;
|
||||||
|
foreach (string s in lstDatabase)
|
||||||
|
{
|
||||||
|
if (s.ToLower() == db.ToLower())
|
||||||
|
{
|
||||||
|
bAdd = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bAdd)
|
||||||
|
{
|
||||||
|
lstDatabase.Add(db);
|
||||||
|
ExchangeLog.LogInfo("AddDatabase: " + db);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int balancer = (int)htBbalancer[dagName];
|
||||||
|
balancer++;
|
||||||
|
if (balancer >= lstDatabase.Count) balancer = 0;
|
||||||
|
htBbalancer[dagName] = balancer;
|
||||||
|
if (lstDatabase.Count != 0) database = lstDatabase[balancer];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ExchangeLog.LogEnd("GetDatabase");
|
||||||
|
return database;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AddressBook
|
||||||
|
internal override void AdjustADSecurity(string objPath, string securityGroupPath, bool isAddressBook)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("AdjustADSecurity");
|
||||||
|
ExchangeLog.DebugInfo(" Active Direcory object: {0}", objPath);
|
||||||
|
ExchangeLog.DebugInfo(" Security Group: {0}", securityGroupPath);
|
||||||
|
|
||||||
|
if (isAddressBook)
|
||||||
|
{
|
||||||
|
ExchangeLog.DebugInfo(" Updating Security");
|
||||||
|
//"Download Address Book" security permission for offline address book
|
||||||
|
Guid openAddressBookGuid = new Guid("{bd919c7c-2d79-4950-bc9c-e16fd99285e8}");
|
||||||
|
|
||||||
|
DirectoryEntry groupEntry = GetADObject(securityGroupPath);
|
||||||
|
byte[] byteSid = (byte[])GetADObjectProperty(groupEntry, "objectSid");
|
||||||
|
|
||||||
|
DirectoryEntry objEntry = GetADObject(objPath);
|
||||||
|
ActiveDirectorySecurity security = objEntry.ObjectSecurity;
|
||||||
|
|
||||||
|
// Create a SecurityIdentifier object for security group.
|
||||||
|
SecurityIdentifier groupSid = new SecurityIdentifier(byteSid, 0);
|
||||||
|
|
||||||
|
// Create an access rule to allow users in Security Group to open address book.
|
||||||
|
ActiveDirectoryAccessRule allowOpenAddressBook =
|
||||||
|
new ActiveDirectoryAccessRule(
|
||||||
|
groupSid,
|
||||||
|
ActiveDirectoryRights.ExtendedRight,
|
||||||
|
AccessControlType.Allow,
|
||||||
|
openAddressBookGuid);
|
||||||
|
|
||||||
|
// Create an access rule to allow users in Security Group to read object.
|
||||||
|
ActiveDirectoryAccessRule allowRead =
|
||||||
|
new ActiveDirectoryAccessRule(
|
||||||
|
groupSid,
|
||||||
|
ActiveDirectoryRights.GenericRead,
|
||||||
|
AccessControlType.Allow);
|
||||||
|
|
||||||
|
// Remove existing rules if exist
|
||||||
|
security.RemoveAccessRuleSpecific(allowOpenAddressBook);
|
||||||
|
security.RemoveAccessRuleSpecific(allowRead);
|
||||||
|
|
||||||
|
// Add a new access rule to allow users in Security Group to open address book.
|
||||||
|
security.AddAccessRule(allowOpenAddressBook);
|
||||||
|
// Add a new access rule to allow users in Security Group to read object.
|
||||||
|
security.AddAccessRule(allowRead);
|
||||||
|
|
||||||
|
// Commit the changes.
|
||||||
|
objEntry.CommitChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
ExchangeLog.LogEnd("AdjustADSecurity");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public override bool IsInstalled()
|
||||||
|
{
|
||||||
|
int value = 0;
|
||||||
|
bool bResult = false;
|
||||||
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
RegistryKey rk = root.OpenSubKey(ExchangeRegistryPath);
|
||||||
|
if (rk != null)
|
||||||
|
{
|
||||||
|
value = (int)rk.GetValue("MsiProductMajor", null);
|
||||||
|
if (value == 14)
|
||||||
|
{
|
||||||
|
value = (int)rk.GetValue("MsiProductMinor", null);
|
||||||
|
if (value == 2) bResult = true;
|
||||||
|
}
|
||||||
|
rk.Close();
|
||||||
|
}
|
||||||
|
return bResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -77,15 +77,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
internal static void DebugInfo(string message, params object[] args)
|
internal static void DebugInfo(string message, params object[] args)
|
||||||
{
|
{
|
||||||
#if DEBUG
|
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void DebugCommand(Command cmd)
|
internal static void DebugCommand(Command cmd)
|
||||||
{
|
{
|
||||||
#if DEBUG
|
|
||||||
StringBuilder sb = new StringBuilder(cmd.CommandText);
|
StringBuilder sb = new StringBuilder(cmd.CommandText);
|
||||||
foreach (CommandParameter parameter in cmd.Parameters)
|
foreach (CommandParameter parameter in cmd.Parameters)
|
||||||
{
|
{
|
||||||
|
@ -97,7 +94,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
sb.AppendFormat(formatString, parameter.Name, parameter.Value);
|
sb.AppendFormat(formatString, parameter.Name, parameter.Value);
|
||||||
}
|
}
|
||||||
Log.WriteInfo("{0} {1}", LogPrefix, sb.ToString());
|
Log.WriteInfo("{0} {1}", LogPrefix, sb.ToString());
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,17 +84,20 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
action.Id = id;
|
action.Id = id;
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
internal void RegisterNewRoomsAddressList(string id)
|
|
||||||
|
internal void RegisterNewAddressBookPolicy(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateRoomsAddressList;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressBookPolicy;
|
||||||
action.Id = id;
|
action.Id = id;
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
internal void RegisterNewAddressPolicy(string id)
|
|
||||||
|
|
||||||
|
internal void RegisterNewRoomsAddressList(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressPolicy;
|
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
|
||||||
action.Id = id;
|
action.Id = id;
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
@ -142,6 +145,15 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void RegisterEnableMailbox(string id)
|
||||||
|
{
|
||||||
|
TransactionAction action = new TransactionAction();
|
||||||
|
action.ActionType = TransactionAction.TransactionActionTypes.EnableMailbox;
|
||||||
|
action.Id = id;
|
||||||
|
Actions.Add(action);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
internal void RegisterNewContact(string id)
|
internal void RegisterNewContact(string id)
|
||||||
{
|
{
|
||||||
TransactionAction action = new TransactionAction();
|
TransactionAction action = new TransactionAction();
|
||||||
|
@ -194,64 +206,4 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Actions.Add(action);
|
Actions.Add(action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class TransactionAction
|
|
||||||
{
|
|
||||||
private TransactionActionTypes actionType;
|
|
||||||
|
|
||||||
public TransactionActionTypes ActionType
|
|
||||||
{
|
|
||||||
get { return actionType; }
|
|
||||||
set { actionType = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
private string id;
|
|
||||||
|
|
||||||
public string Id
|
|
||||||
{
|
|
||||||
get { return id; }
|
|
||||||
set { id = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
private string suffix;
|
|
||||||
|
|
||||||
public string Suffix
|
|
||||||
{
|
|
||||||
get { return suffix; }
|
|
||||||
set { suffix = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
private string account;
|
|
||||||
|
|
||||||
public string Account
|
|
||||||
{
|
|
||||||
get { return account; }
|
|
||||||
set { account = value; }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
internal enum TransactionActionTypes
|
|
||||||
{
|
|
||||||
CreateOrganizationUnit,
|
|
||||||
CreateGlobalAddressList,
|
|
||||||
CreateAddressList,
|
|
||||||
CreateAddressPolicy,
|
|
||||||
CreateOfflineAddressBook,
|
|
||||||
CreateDistributionGroup,
|
|
||||||
EnableDistributionGroup,
|
|
||||||
CreateAcceptedDomain,
|
|
||||||
AddUPNSuffix,
|
|
||||||
CreateMailbox,
|
|
||||||
CreateContact,
|
|
||||||
CreatePublicFolder,
|
|
||||||
CreateActiveSyncPolicy,
|
|
||||||
AddMailboxFullAccessPermission,
|
|
||||||
AddSendAsPermission,
|
|
||||||
RemoveMailboxFullAccessPermission,
|
|
||||||
RemoveSendAsPermission,
|
|
||||||
CreateRoomsAddressList
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -342,9 +342,9 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
#region Users
|
#region Users
|
||||||
|
|
||||||
public void CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
|
public int CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
|
||||||
{
|
{
|
||||||
CreateUserInternal(organizationId, loginName, displayName, upn, password, enabled);
|
return CreateUserInternal(organizationId, loginName, displayName, upn, password, enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal int CreateUserInternal(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
|
internal int CreateUserInternal(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
|
||||||
|
@ -368,24 +368,31 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string path = GetOrganizationPath(organizationId);
|
string path = GetOrganizationPath(organizationId);
|
||||||
userPath= GetUserPath(organizationId, loginName);
|
userPath = GetUserPath(organizationId, loginName);
|
||||||
if (!ActiveDirectoryUtils.AdObjectExists(userPath))
|
if (!ActiveDirectoryUtils.AdObjectExists(userPath))
|
||||||
{
|
{
|
||||||
userPath = ActiveDirectoryUtils.CreateUser(path, loginName, displayName, password, enabled);
|
userPath = ActiveDirectoryUtils.CreateUser(path, upn, loginName, displayName, password, enabled);
|
||||||
DirectoryEntry entry = new DirectoryEntry(userPath);
|
DirectoryEntry entry = new DirectoryEntry(userPath);
|
||||||
ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.UserPrincipalName, upn);
|
ActiveDirectoryUtils.SetADObjectProperty(entry, ADAttributes.UserPrincipalName, upn);
|
||||||
entry.CommitChanges();
|
entry.CommitChanges();
|
||||||
userCreated = true;
|
userCreated = true;
|
||||||
|
HostedSolutionLog.DebugInfo("User created: {0}", displayName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
HostedSolutionLog.DebugInfo("AD_OBJECT_ALREADY_EXISTS: {0}", userPath);
|
||||||
|
HostedSolutionLog.LogEnd("CreateUserInternal");
|
||||||
return Errors.AD_OBJECT_ALREADY_EXISTS;
|
return Errors.AD_OBJECT_ALREADY_EXISTS;
|
||||||
|
}
|
||||||
|
|
||||||
string groupPath = GetGroupPath(organizationId);
|
string groupPath = GetGroupPath(organizationId);
|
||||||
|
HostedSolutionLog.DebugInfo("Group retrieved: {0}", groupPath);
|
||||||
|
|
||||||
|
|
||||||
ActiveDirectoryUtils.AddUserToGroup(userPath, groupPath);
|
ActiveDirectoryUtils.AddUserToGroup(userPath, groupPath);
|
||||||
|
HostedSolutionLog.DebugInfo("Added to group: {0}", groupPath);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
HostedSolutionLog.LogError(e);
|
HostedSolutionLog.LogError(e);
|
||||||
try
|
try
|
||||||
|
@ -393,10 +400,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
if (userCreated)
|
if (userCreated)
|
||||||
ActiveDirectoryUtils.DeleteADObject(userPath);
|
ActiveDirectoryUtils.DeleteADObject(userPath);
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
HostedSolutionLog.LogError(ex);
|
HostedSolutionLog.LogError(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Errors.AD_OBJECT_ALREADY_EXISTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
HostedSolutionLog.LogEnd("CreateUserInternal");
|
HostedSolutionLog.LogEnd("CreateUserInternal");
|
||||||
|
@ -516,7 +525,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
retUser.ExternalEmail = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.ExternalEmail);
|
retUser.ExternalEmail = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.ExternalEmail);
|
||||||
retUser.Disabled = (bool)entry.InvokeGet(ADAttributes.AccountDisabled);
|
retUser.Disabled = (bool)entry.InvokeGet(ADAttributes.AccountDisabled);
|
||||||
retUser.Manager = GetManager(entry);
|
retUser.Manager = GetManager(entry);
|
||||||
retUser.DomainUserName = GetDomainName(loginName);
|
retUser.SamAccountName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.SAMAccountName);
|
||||||
|
retUser.DomainUserName = GetDomainName(ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.SAMAccountName));
|
||||||
retUser.DistinguishedName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.DistinguishedName);
|
retUser.DistinguishedName = ActiveDirectoryUtils.GetADObjectStringProperty(entry, ADAttributes.DistinguishedName);
|
||||||
retUser.Locked = (bool)entry.InvokeGet(ADAttributes.AccountLocked);
|
retUser.Locked = (bool)entry.InvokeGet(ADAttributes.AccountLocked);
|
||||||
|
|
||||||
|
@ -626,6 +636,48 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string GetSamAccountNameByUserPrincipalName(string organizationId, string userPrincipalName)
|
||||||
|
{
|
||||||
|
return GetSamAccountNameByUserPrincipalNameInternal(organizationId, userPrincipalName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetSamAccountNameByUserPrincipalNameInternal(string organizationId, string userPrincipalName)
|
||||||
|
{
|
||||||
|
HostedSolutionLog.LogStart("GetSamAccountNameByUserPrincipalNameInternal");
|
||||||
|
HostedSolutionLog.DebugInfo("userPrincipalName : {0}", userPrincipalName);
|
||||||
|
HostedSolutionLog.DebugInfo("organizationId : {0}", organizationId);
|
||||||
|
|
||||||
|
string accountName = string.Empty;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
string path = GetOrganizationPath(organizationId);
|
||||||
|
DirectoryEntry entry = ActiveDirectoryUtils.GetADObject(path);
|
||||||
|
|
||||||
|
DirectorySearcher searcher = new DirectorySearcher(entry);
|
||||||
|
searcher.PropertiesToLoad.Add("userPrincipalName");
|
||||||
|
searcher.PropertiesToLoad.Add("sAMAccountName");
|
||||||
|
searcher.Filter = "(userPrincipalName=" + userPrincipalName + ")";
|
||||||
|
searcher.SearchScope = SearchScope.Subtree;
|
||||||
|
|
||||||
|
SearchResult resCollection = searcher.FindOne();
|
||||||
|
if (resCollection != null)
|
||||||
|
{
|
||||||
|
accountName = resCollection.Properties["samaccountname"][0].ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
HostedSolutionLog.LogEnd("GetSamAccountNameByUserPrincipalNameInternal");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
HostedSolutionLog.DebugInfo("Failed : {0}", e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return accountName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Domains
|
#region Domains
|
||||||
|
|
|
@ -131,6 +131,7 @@
|
||||||
<Compile Include="BlackBerry5Provider.cs" />
|
<Compile Include="BlackBerry5Provider.cs" />
|
||||||
<Compile Include="BlackBerryProvider.cs" />
|
<Compile Include="BlackBerryProvider.cs" />
|
||||||
<Compile Include="Exchange2010.cs" />
|
<Compile Include="Exchange2010.cs" />
|
||||||
|
<Compile Include="Exchange2010SP2.cs" />
|
||||||
<Compile Include="HostedSharePointServer2010.cs" />
|
<Compile Include="HostedSharePointServer2010.cs" />
|
||||||
<Compile Include="OCSEdge2007R2.cs" />
|
<Compile Include="OCSEdge2007R2.cs" />
|
||||||
<Compile Include="OCS2007R2.cs" />
|
<Compile Include="OCS2007R2.cs" />
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,35 +1,7 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.3053
|
// Runtime Version:2.0.50727.5456
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -39,16 +11,16 @@
|
||||||
//
|
//
|
||||||
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
|
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
|
||||||
//
|
//
|
||||||
using WebsitePanel.Providers.Common;
|
|
||||||
using WebsitePanel.Providers.ResultObjects;
|
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.HostedSolution {
|
namespace WebsitePanel.Providers.HostedSolution {
|
||||||
using System.Diagnostics;
|
using System.Xml.Serialization;
|
||||||
using System.Web.Services;
|
using System.Web.Services;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Web.Services.Protocols;
|
using System.Web.Services.Protocols;
|
||||||
using System;
|
using System;
|
||||||
using System.Xml.Serialization;
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -72,7 +44,7 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback DeleteUserOperationCompleted;
|
private System.Threading.SendOrPostCallback DeleteUserOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GeUserGeneralSettingsOperationCompleted;
|
private System.Threading.SendOrPostCallback GetUserGeneralSettingsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback SetUserGeneralSettingsOperationCompleted;
|
private System.Threading.SendOrPostCallback SetUserGeneralSettingsOperationCompleted;
|
||||||
|
|
||||||
|
@ -82,9 +54,11 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback GetPasswordPolicyOperationCompleted;
|
private System.Threading.SendOrPostCallback GetPasswordPolicyOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback GetSamAccountNameByUserPrincipalNameOperationCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public Organizations() {
|
public Organizations() {
|
||||||
this.Url = "http://exchange-dev:9003/Organizations.asmx";
|
this.Url = "http://localhost:9006/Organizations.asmx";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -103,7 +77,7 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
public event DeleteUserCompletedEventHandler DeleteUserCompleted;
|
public event DeleteUserCompletedEventHandler DeleteUserCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GeUserGeneralSettingsCompletedEventHandler GeUserGeneralSettingsCompleted;
|
public event GetUserGeneralSettingsCompletedEventHandler GetUserGeneralSettingsCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event SetUserGeneralSettingsCompletedEventHandler SetUserGeneralSettingsCompleted;
|
public event SetUserGeneralSettingsCompletedEventHandler SetUserGeneralSettingsCompleted;
|
||||||
|
@ -117,6 +91,9 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event GetPasswordPolicyCompletedEventHandler GetPasswordPolicyCompleted;
|
public event GetPasswordPolicyCompletedEventHandler GetPasswordPolicyCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event GetSamAccountNameByUserPrincipalNameCompletedEventHandler GetSamAccountNameByUserPrincipalNameCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/OrganizationExists", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/OrganizationExists", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
@ -244,14 +221,15 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateUser", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CreateUser", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public void CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled) {
|
public int CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled) {
|
||||||
this.Invoke("CreateUser", new object[] {
|
object[] results = this.Invoke("CreateUser", new object[] {
|
||||||
organizationId,
|
organizationId,
|
||||||
loginName,
|
loginName,
|
||||||
displayName,
|
displayName,
|
||||||
upn,
|
upn,
|
||||||
password,
|
password,
|
||||||
enabled});
|
enabled});
|
||||||
|
return ((int)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -266,8 +244,9 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void EndCreateUser(System.IAsyncResult asyncResult) {
|
public int EndCreateUser(System.IAsyncResult asyncResult) {
|
||||||
this.EndInvoke(asyncResult);
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((int)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -292,7 +271,7 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
private void OnCreateUserOperationCompleted(object arg) {
|
private void OnCreateUserOperationCompleted(object arg) {
|
||||||
if ((this.CreateUserCompleted != null)) {
|
if ((this.CreateUserCompleted != null)) {
|
||||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
this.CreateUserCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
this.CreateUserCompleted(this, new CreateUserCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,46 +320,46 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GeUserGeneralSettings", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetUserGeneralSettings", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public OrganizationUser GeUserGeneralSettings(string loginName, string organizationId) {
|
public OrganizationUser GetUserGeneralSettings(string loginName, string organizationId) {
|
||||||
object[] results = this.Invoke("GeUserGeneralSettings", new object[] {
|
object[] results = this.Invoke("GetUserGeneralSettings", new object[] {
|
||||||
loginName,
|
loginName,
|
||||||
organizationId});
|
organizationId});
|
||||||
return ((OrganizationUser)(results[0]));
|
return ((OrganizationUser)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public System.IAsyncResult BeginGeUserGeneralSettings(string loginName, string organizationId, System.AsyncCallback callback, object asyncState) {
|
public System.IAsyncResult BeginGetUserGeneralSettings(string loginName, string organizationId, System.AsyncCallback callback, object asyncState) {
|
||||||
return this.BeginInvoke("GeUserGeneralSettings", new object[] {
|
return this.BeginInvoke("GetUserGeneralSettings", new object[] {
|
||||||
loginName,
|
loginName,
|
||||||
organizationId}, callback, asyncState);
|
organizationId}, callback, asyncState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public OrganizationUser EndGeUserGeneralSettings(System.IAsyncResult asyncResult) {
|
public OrganizationUser EndGetUserGeneralSettings(System.IAsyncResult asyncResult) {
|
||||||
object[] results = this.EndInvoke(asyncResult);
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
return ((OrganizationUser)(results[0]));
|
return ((OrganizationUser)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void GeUserGeneralSettingsAsync(string loginName, string organizationId) {
|
public void GetUserGeneralSettingsAsync(string loginName, string organizationId) {
|
||||||
this.GeUserGeneralSettingsAsync(loginName, organizationId, null);
|
this.GetUserGeneralSettingsAsync(loginName, organizationId, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void GeUserGeneralSettingsAsync(string loginName, string organizationId, object userState) {
|
public void GetUserGeneralSettingsAsync(string loginName, string organizationId, object userState) {
|
||||||
if ((this.GeUserGeneralSettingsOperationCompleted == null)) {
|
if ((this.GetUserGeneralSettingsOperationCompleted == null)) {
|
||||||
this.GeUserGeneralSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGeUserGeneralSettingsOperationCompleted);
|
this.GetUserGeneralSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetUserGeneralSettingsOperationCompleted);
|
||||||
}
|
}
|
||||||
this.InvokeAsync("GeUserGeneralSettings", new object[] {
|
this.InvokeAsync("GetUserGeneralSettings", new object[] {
|
||||||
loginName,
|
loginName,
|
||||||
organizationId}, this.GeUserGeneralSettingsOperationCompleted, userState);
|
organizationId}, this.GetUserGeneralSettingsOperationCompleted, userState);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnGeUserGeneralSettingsOperationCompleted(object arg) {
|
private void OnGetUserGeneralSettingsOperationCompleted(object arg) {
|
||||||
if ((this.GeUserGeneralSettingsCompleted != null)) {
|
if ((this.GetUserGeneralSettingsCompleted != null)) {
|
||||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
this.GeUserGeneralSettingsCompleted(this, new GeUserGeneralSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
this.GetUserGeneralSettingsCompleted(this, new GetUserGeneralSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -745,21 +724,57 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetSamAccountNameByUserPrincipalName", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string GetSamAccountNameByUserPrincipalName(string organizationId, string userPrincipalName) {
|
||||||
|
object[] results = this.Invoke("GetSamAccountNameByUserPrincipalName", new object[] {
|
||||||
|
organizationId,
|
||||||
|
userPrincipalName});
|
||||||
|
return ((string)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginGetSamAccountNameByUserPrincipalName(string organizationId, string userPrincipalName, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("GetSamAccountNameByUserPrincipalName", new object[] {
|
||||||
|
organizationId,
|
||||||
|
userPrincipalName}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public string EndGetSamAccountNameByUserPrincipalName(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((string)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetSamAccountNameByUserPrincipalNameAsync(string organizationId, string userPrincipalName) {
|
||||||
|
this.GetSamAccountNameByUserPrincipalNameAsync(organizationId, userPrincipalName, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void GetSamAccountNameByUserPrincipalNameAsync(string organizationId, string userPrincipalName, object userState) {
|
||||||
|
if ((this.GetSamAccountNameByUserPrincipalNameOperationCompleted == null)) {
|
||||||
|
this.GetSamAccountNameByUserPrincipalNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSamAccountNameByUserPrincipalNameOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("GetSamAccountNameByUserPrincipalName", new object[] {
|
||||||
|
organizationId,
|
||||||
|
userPrincipalName}, this.GetSamAccountNameByUserPrincipalNameOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetSamAccountNameByUserPrincipalNameOperationCompleted(object arg) {
|
||||||
|
if ((this.GetSamAccountNameByUserPrincipalNameCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.GetSamAccountNameByUserPrincipalNameCompleted(this, new GetSamAccountNameByUserPrincipalNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
base.CancelAsync(userState);
|
base.CancelAsync(userState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
public delegate void OrganizationExistsCompletedEventHandler(object sender, OrganizationExistsCompletedEventArgs e);
|
public delegate void OrganizationExistsCompletedEventHandler(object sender, OrganizationExistsCompletedEventArgs e);
|
||||||
|
@ -818,7 +833,29 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
public delegate void CreateUserCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void CreateUserCompletedEventHandler(object sender, CreateUserCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class CreateUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal CreateUserCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public int Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((int)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
@ -826,17 +863,17 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
public delegate void GeUserGeneralSettingsCompletedEventHandler(object sender, GeUserGeneralSettingsCompletedEventArgs e);
|
public delegate void GetUserGeneralSettingsCompletedEventHandler(object sender, GetUserGeneralSettingsCompletedEventArgs e);
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
public partial class GeUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
public partial class GetUserGeneralSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
private object[] results;
|
private object[] results;
|
||||||
|
|
||||||
internal GeUserGeneralSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
internal GetUserGeneralSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
base(exception, cancelled, userState) {
|
base(exception, cancelled, userState) {
|
||||||
this.results = results;
|
this.results = results;
|
||||||
}
|
}
|
||||||
|
@ -887,4 +924,30 @@ namespace WebsitePanel.Providers.HostedSolution {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
public delegate void GetSamAccountNameByUserPrincipalNameCompletedEventHandler(object sender, GetSamAccountNameByUserPrincipalNameCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class GetSamAccountNameByUserPrincipalNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal GetSamAccountNameByUserPrincipalNameCompletedEventArgs(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]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
// Copyright (c) 2011, Outercurve Foundation.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
@ -87,7 +87,7 @@ namespace WebsitePanel.Server.Utils
|
||||||
{
|
{
|
||||||
if (logSeverity.TraceInfo)
|
if (logSeverity.TraceInfo)
|
||||||
{
|
{
|
||||||
Trace.TraceInformation(FormatIncomingMessage(message, args));
|
Trace.TraceInformation(FormatIncomingMessage(message, "INFO", args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
@ -103,7 +103,7 @@ namespace WebsitePanel.Server.Utils
|
||||||
{
|
{
|
||||||
if (logSeverity.TraceWarning)
|
if (logSeverity.TraceWarning)
|
||||||
{
|
{
|
||||||
Trace.TraceWarning(FormatIncomingMessage(message, args));
|
Trace.TraceWarning(FormatIncomingMessage(message, "WARNING", args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
@ -119,7 +119,7 @@ namespace WebsitePanel.Server.Utils
|
||||||
{
|
{
|
||||||
if (logSeverity.TraceInfo)
|
if (logSeverity.TraceInfo)
|
||||||
{
|
{
|
||||||
Trace.TraceInformation(FormatIncomingMessage(message, args));
|
Trace.TraceInformation(FormatIncomingMessage(message, "START", args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
@ -135,13 +135,13 @@ namespace WebsitePanel.Server.Utils
|
||||||
{
|
{
|
||||||
if (logSeverity.TraceInfo)
|
if (logSeverity.TraceInfo)
|
||||||
{
|
{
|
||||||
Trace.TraceInformation(FormatIncomingMessage(message, args));
|
Trace.TraceInformation(FormatIncomingMessage(message, "END", args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string FormatIncomingMessage(string message, params object[] args)
|
private static string FormatIncomingMessage(string message, string tag, params object[] args)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
if (args.Length > 0)
|
if (args.Length > 0)
|
||||||
|
@ -149,7 +149,7 @@ namespace WebsitePanel.Server.Utils
|
||||||
message = String.Format(message, args);
|
message = String.Format(message, args);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
return String.Concat(String.Format("[{0:G}] END: ", DateTime.Now), message);
|
return String.Concat(String.Format("[{0:G}] {1}: ", DateTime.Now, tag), message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,12 +71,12 @@ namespace WebsitePanel.Server
|
||||||
#region Organizations
|
#region Organizations
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public Organization ExtendToExchangeOrganization(string organizationId, string securityGroup)
|
public Organization ExtendToExchangeOrganization(string organizationId, string securityGroup, bool IsConsumer)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("ExtendToExchangeOrganization");
|
LogStart("ExtendToExchangeOrganization");
|
||||||
Organization ret = ES.ExtendToExchangeOrganization(organizationId, securityGroup);
|
Organization ret = ES.ExtendToExchangeOrganization(organizationId, securityGroup, IsConsumer);
|
||||||
LogEnd("ExtendToExchangeOrganization");
|
LogEnd("ExtendToExchangeOrganization");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -89,20 +89,22 @@ namespace WebsitePanel.Server
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public string CreateMailEnableUser(string upn, string organizationId, string organizationDistinguishedName, ExchangeAccountType accountType,
|
public string CreateMailEnableUser(string upn, string organizationId, string organizationDistinguishedName, ExchangeAccountType accountType,
|
||||||
string mailboxDatabase, string offlineAddressBook,
|
string mailboxDatabase, string offlineAddressBook, string addressBookPolicy,
|
||||||
string accountName, bool enablePOP, bool enableIMAP,
|
string accountName, bool enablePOP, bool enableIMAP,
|
||||||
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays)
|
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays,
|
||||||
|
int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook, bool isConsumer)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("CreateMailEnableUser");
|
LogStart("CreateMailEnableUser");
|
||||||
string ret = ES.CreateMailEnableUser(upn, organizationId, organizationDistinguishedName,accountType,
|
string ret = ES.CreateMailEnableUser(upn, organizationId, organizationDistinguishedName, accountType,
|
||||||
mailboxDatabase, offlineAddressBook,
|
mailboxDatabase, offlineAddressBook, addressBookPolicy,
|
||||||
accountName, enablePOP, enableIMAP,
|
accountName, enablePOP, enableIMAP,
|
||||||
enableOWA, enableMAPI, enableActiveSync,
|
enableOWA, enableMAPI, enableActiveSync,
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB,
|
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB,
|
||||||
keepDeletedItemsDays);
|
keepDeletedItemsDays,
|
||||||
|
maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook, isConsumer);
|
||||||
LogEnd("CreateMailEnableUser");
|
LogEnd("CreateMailEnableUser");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -176,12 +178,30 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public bool DeleteOrganization(string organizationId, string distinguishedName, string globalAddressList, string addressList, string roomsAddressList, string offlineAddressBook, string securityGroup)
|
public Organization CreateOrganizationAddressBookPolicy(string organizationId, string gal, string addressBook, string roomList, string oab)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LogStart("CCreateOrganizationAddressBookPolicy");
|
||||||
|
Organization ret = ES.CreateOrganizationAddressBookPolicy(organizationId, gal, addressBook, roomList, oab);
|
||||||
|
LogEnd("CreateOrganizationAddressBookPolicy");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogError("CreateOrganizationAddressBookPolicy", ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public bool DeleteOrganization(string organizationId, string distinguishedName, string globalAddressList, string addressList, string roomList, string offlineAddressBook, string securityGroup, string addressBookPolicy)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("DeleteOrganization");
|
LogStart("DeleteOrganization");
|
||||||
bool ret = ES.DeleteOrganization(organizationId, distinguishedName, globalAddressList, addressList, roomsAddressList, offlineAddressBook, securityGroup);
|
bool ret = ES.DeleteOrganization(organizationId, distinguishedName, globalAddressList, addressList, roomList, offlineAddressBook, securityGroup, addressBookPolicy);
|
||||||
LogEnd("DeleteOrganization");
|
LogEnd("DeleteOrganization");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -252,7 +272,7 @@ namespace WebsitePanel.Server
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("GetAuthoritativeDomains");
|
LogStart("GetAuthoritativeDomains");
|
||||||
string []ret = ES.GetAuthoritativeDomains();
|
string[] ret = ES.GetAuthoritativeDomains();
|
||||||
LogEnd("GetAuthoritativeDomains");
|
LogEnd("GetAuthoritativeDomains");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -281,21 +301,23 @@ namespace WebsitePanel.Server
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mailboxes
|
#region Mailboxes
|
||||||
|
/*
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public string CreateMailbox(string organizationId, string organizationDistinguishedName, string mailboxDatabase,
|
public string CreateMailbox(string organizationId, string organizationDistinguishedName, string mailboxDatabase,
|
||||||
string securityGroup, string offlineAddressBook, ExchangeAccountType accountType,
|
string securityGroup, string offlineAddressBook, string addressBookPolicy, ExchangeAccountType accountType,
|
||||||
string displayName, string accountName, string name,
|
string displayName, string accountName, string name,
|
||||||
string domain, string password, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
string domain, string password, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays)
|
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool hideFromAddressBook)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("CreateMailbox");
|
LogStart("CreateMailbox");
|
||||||
string ret = ES.CreateMailbox(organizationId, organizationDistinguishedName, mailboxDatabase, securityGroup,
|
string ret = ES.CreateMailbox(organizationId, organizationDistinguishedName, mailboxDatabase, securityGroup,
|
||||||
offlineAddressBook, accountType,
|
offlineAddressBook, addressBookPolicy, accountType,
|
||||||
displayName, accountName, name, domain, password, enablePOP, enableIMAP,
|
displayName, accountName, name, domain, password, enablePOP, enableIMAP,
|
||||||
enableOWA, enableMAPI, enableActiveSync,
|
enableOWA, enableMAPI, enableActiveSync,
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays);
|
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays,
|
||||||
|
maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, hideFromAddressBook);
|
||||||
LogEnd("CreateMailbox");
|
LogEnd("CreateMailbox");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -305,7 +327,7 @@ namespace WebsitePanel.Server
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void DeleteMailbox(string accountName)
|
public void DeleteMailbox(string accountName)
|
||||||
{
|
{
|
||||||
|
@ -357,12 +379,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetMailboxGeneralSettings(string accountName, string displayName, string password, bool hideFromAddressBook, bool disabled, string firstName, string initials, string lastName, string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office, string managerAccountName, string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes)
|
public void SetMailboxGeneralSettings(string accountName, bool hideFromAddressBook, bool disabled)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetMailboxGeneralSettings");
|
LogStart("SetMailboxGeneralSettings");
|
||||||
ES.SetMailboxGeneralSettings(accountName, displayName, password, hideFromAddressBook, disabled, firstName, initials, lastName, address, city, state, zip, country, jobTitle, company, department, office, managerAccountName, businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes);
|
ES.SetMailboxGeneralSettings(accountName, hideFromAddressBook, disabled);
|
||||||
LogEnd("SetMailboxGeneralSettings");
|
LogEnd("SetMailboxGeneralSettings");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -390,12 +412,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetMailboxMailFlowSettings(string accountName, bool enableForwarding, string forwardingAccountName, bool forwardToBoth, string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB, bool requireSenderAuthentication)
|
public void SetMailboxMailFlowSettings(string accountName, bool enableForwarding, string forwardingAccountName, bool forwardToBoth, string[] sendOnBehalfAccounts, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetMailboxMailFlowSettings");
|
LogStart("SetMailboxMailFlowSettings");
|
||||||
ES.SetMailboxMailFlowSettings(accountName, enableForwarding, forwardingAccountName, forwardToBoth, sendOnBehalfAccounts, acceptAccounts, rejectAccounts, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB, requireSenderAuthentication);
|
ES.SetMailboxMailFlowSettings(accountName, enableForwarding, forwardingAccountName, forwardToBoth, sendOnBehalfAccounts, acceptAccounts, rejectAccounts, requireSenderAuthentication);
|
||||||
LogEnd("SetMailboxMailFlowSettings");
|
LogEnd("SetMailboxMailFlowSettings");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -424,13 +446,13 @@ namespace WebsitePanel.Server
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
public void SetMailboxAdvancedSettings(string organizationId, string accountName, bool enablePOP, bool enableIMAP, bool enableOWA, bool enableMAPI, bool enableActiveSync,
|
||||||
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays)
|
int issueWarningKB, int prohibitSendKB, int prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB, int maxReceiveMessageSizeKB)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetMailboxAdvancedSettings");
|
LogStart("SetMailboxAdvancedSettings");
|
||||||
ES.SetMailboxAdvancedSettings(organizationId, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync,
|
ES.SetMailboxAdvancedSettings(organizationId, accountName, enablePOP, enableIMAP, enableOWA, enableMAPI, enableActiveSync,
|
||||||
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays);
|
issueWarningKB, prohibitSendKB, prohibitSendReceiveKB, keepDeletedItemsDays, maxRecipients, maxSendMessageSizeKB, maxReceiveMessageSizeKB);
|
||||||
LogEnd("SetMailboxAdvancedSettings");
|
LogEnd("SetMailboxAdvancedSettings");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -646,12 +668,12 @@ namespace WebsitePanel.Server
|
||||||
|
|
||||||
#region Distribution Lists
|
#region Distribution Lists
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void CreateDistributionList(string organizationId, string organizationDistinguishedName, string displayName, string accountName, string name, string domain, string managedBy)
|
public void CreateDistributionList(string organizationId, string organizationDistinguishedName, string displayName, string accountName, string name, string domain, string managedBy, string[] addressLists)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("CreateDistributionList");
|
LogStart("CreateDistributionList");
|
||||||
ES.CreateDistributionList(organizationId, organizationDistinguishedName, displayName, accountName, name, domain, managedBy);
|
ES.CreateDistributionList(organizationId, organizationDistinguishedName, displayName, accountName, name, domain, managedBy, addressLists);
|
||||||
LogEnd("CreateDistributionList");
|
LogEnd("CreateDistributionList");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -695,12 +717,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetDistributionListGeneralSettings(string accountName, string displayName, bool hideFromAddressBook, string managedBy, string[] members, string notes)
|
public void SetDistributionListGeneralSettings(string accountName, string displayName, bool hideFromAddressBook, string managedBy, string[] members, string notes, string[] addressLists)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetDistributionListGeneralSettings");
|
LogStart("SetDistributionListGeneralSettings");
|
||||||
ES.SetDistributionListGeneralSettings(accountName, displayName, hideFromAddressBook, managedBy, members, notes);
|
ES.SetDistributionListGeneralSettings(accountName, displayName, hideFromAddressBook, managedBy, members, notes, addressLists);
|
||||||
LogEnd("SetDistributionListGeneralSettings");
|
LogEnd("SetDistributionListGeneralSettings");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -728,12 +750,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetDistributionListMailFlowSettings(string accountName, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication)
|
public void SetDistributionListMailFlowSettings(string accountName, string[] acceptAccounts, string[] rejectAccounts, bool requireSenderAuthentication, string[] addressLists)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetDistributionListMailFlowSettings");
|
LogStart("SetDistributionListMailFlowSettings");
|
||||||
ES.SetDistributionListMailFlowSettings(accountName, acceptAccounts, rejectAccounts, requireSenderAuthentication);
|
ES.SetDistributionListMailFlowSettings(accountName, acceptAccounts, rejectAccounts, requireSenderAuthentication, addressLists);
|
||||||
LogEnd("SetDistributionListMailFlowSettings");
|
LogEnd("SetDistributionListMailFlowSettings");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -761,12 +783,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetDistributionListEmailAddresses(string accountName, string[] emailAddresses)
|
public void SetDistributionListEmailAddresses(string accountName, string[] emailAddresses, string[] addressLists)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetDistributionListEmailAddresses");
|
LogStart("SetDistributionListEmailAddresses");
|
||||||
ES.SetDistributionListEmailAddresses(accountName, emailAddresses);
|
ES.SetDistributionListEmailAddresses(accountName, emailAddresses, addressLists);
|
||||||
LogEnd("SetDistributionListEmailAddresses");
|
LogEnd("SetDistributionListEmailAddresses");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -777,12 +799,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetDistributionListPrimaryEmailAddress(string accountName, string emailAddress)
|
public void SetDistributionListPrimaryEmailAddress(string accountName, string emailAddress, string[] addressLists)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogStart("SetDistributionListPrimaryEmailAddress");
|
LogStart("SetDistributionListPrimaryEmailAddress");
|
||||||
ES.SetDistributionListPrimaryEmailAddress(accountName, emailAddress);
|
ES.SetDistributionListPrimaryEmailAddress(accountName, emailAddress, addressLists);
|
||||||
LogEnd("SetDistributionListPrimaryEmailAddress");
|
LogEnd("SetDistributionListPrimaryEmailAddress");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -793,9 +815,9 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void SetDistributionListPermissions(string organizationId, string accountName, string[] sendAsAccounts, string[] sendOnBehalfAccounts)
|
public void SetDistributionListPermissions(string organizationId, string accountName, string[] sendAsAccounts, string[] sendOnBehalfAccounts, string[] addressLists)
|
||||||
{
|
{
|
||||||
ES.SetDistributionListPermissions(organizationId, accountName, sendAsAccounts, sendOnBehalfAccounts);
|
ES.SetDistributionListPermissions(organizationId, accountName, sendAsAccounts, sendOnBehalfAccounts, addressLists);
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
|
|
@ -93,13 +93,9 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
|
public int CreateUser(string organizationId, string loginName, string displayName, string upn, string password, bool enabled)
|
||||||
{
|
{
|
||||||
Log.WriteStart("'{0} CreateUser", ProviderSettings.ProviderName);
|
return Organization.CreateUser(organizationId, loginName, displayName, upn, password, enabled);
|
||||||
|
|
||||||
Organization.CreateUser(organizationId, loginName, displayName, upn, password, enabled);
|
|
||||||
|
|
||||||
Log.WriteEnd("'{0}' CreateUser", ProviderSettings.ProviderName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
@ -109,7 +105,7 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public OrganizationUser GeUserGeneralSettings(string loginName, string organizationId)
|
public OrganizationUser GetUserGeneralSettings(string loginName, string organizationId)
|
||||||
{
|
{
|
||||||
return Organization.GetUserGeneralSettings(loginName, organizationId);
|
return Organization.GetUserGeneralSettings(loginName, organizationId);
|
||||||
}
|
}
|
||||||
|
@ -147,5 +143,10 @@ namespace WebsitePanel.Server
|
||||||
return Organization.GetPasswordPolicy();
|
return Organization.GetPasswordPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public string GetSamAccountNameByUserPrincipalName(string organizationId, string userPrincipalName)
|
||||||
|
{
|
||||||
|
return Organization.GetSamAccountNameByUserPrincipalName(organizationId, userPrincipalName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<!-- Display Settings -->
|
<!-- Display Settings -->
|
||||||
<PortalName>WebsitePanel</PortalName>
|
<PortalName>WebsitePanel</PortalName>
|
||||||
<!-- Enterprise Server -->
|
<!-- Enterprise Server -->
|
||||||
<EnterpriseServer>http://localhost:9002</EnterpriseServer>
|
<EnterpriseServer>http://localhost:9005</EnterpriseServer>
|
||||||
<!-- General Settings -->
|
<!-- General Settings -->
|
||||||
<CultureCookieName>UserCulture</CultureCookieName>
|
<CultureCookieName>UserCulture</CultureCookieName>
|
||||||
<ThemeCookieName>UserTheme</ThemeCookieName>
|
<ThemeCookieName>UserTheme</ThemeCookieName>
|
||||||
|
|
|
@ -486,6 +486,9 @@
|
||||||
<Control key="storage_usage_details" src="WebsitePanel/ExchangeServer/ExchangeStorageUsageBreakdown.ascx" title="ExchangeStorageUsageBreakdown" type="View" />
|
<Control key="storage_usage_details" src="WebsitePanel/ExchangeServer/ExchangeStorageUsageBreakdown.ascx" title="ExchangeStorageUsageBreakdown" type="View" />
|
||||||
<Control key="storage_limits" src="WebsitePanel/ExchangeServer/ExchangeStorageLimits.ascx" title="ExchangeStorageLimits" type="View" />
|
<Control key="storage_limits" src="WebsitePanel/ExchangeServer/ExchangeStorageLimits.ascx" title="ExchangeStorageLimits" type="View" />
|
||||||
<Control key="activesync_policy" src="WebsitePanel/ExchangeServer/ExchangeActiveSyncSettings.ascx" title="ExchangeActiveSyncSettings" type="View" />
|
<Control key="activesync_policy" src="WebsitePanel/ExchangeServer/ExchangeActiveSyncSettings.ascx" title="ExchangeActiveSyncSettings" type="View" />
|
||||||
|
<Control key="mailboxplans" src="WebsitePanel/ExchangeServer/ExchangeMailboxPlans.ascx" title="ExchangeMailboxPlans" type="View" />
|
||||||
|
<Control key="add_mailboxplan" src="WebsitePanel/ExchangeServer/ExchangeAddMailboxPlan.ascx" title="ExchangeAddMailboxPlan" type="View" />
|
||||||
|
|
||||||
<Control key="CRMOrganizationDetails" src="WebsitePanel/CRM/CRMOrganizationDetails.ascx" title="ExchangeActiveSyncSettings" type="View" />
|
<Control key="CRMOrganizationDetails" src="WebsitePanel/CRM/CRMOrganizationDetails.ascx" title="ExchangeActiveSyncSettings" type="View" />
|
||||||
<Control key="CRMUsers" src="WebsitePanel/CRM/CRMUsers.ascx" title="CRM Users" type="View" />
|
<Control key="CRMUsers" src="WebsitePanel/CRM/CRMUsers.ascx" title="CRM Users" type="View" />
|
||||||
<Control key="CRMUserRoles" src="WebsitePanel/CRM/CRMUserRoles.ascx" title="CRM User Roles" type="View" />
|
<Control key="CRMUserRoles" src="WebsitePanel/CRM/CRMUserRoles.ascx" title="CRM User Roles" type="View" />
|
||||||
|
|
|
@ -2806,7 +2806,7 @@
|
||||||
<value>Contacts per Organization</value>
|
<value>Contacts per Organization</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Quota.Exchange2007.DiskSpace" xml:space="preserve">
|
<data name="Quota.Exchange2007.DiskSpace" xml:space="preserve">
|
||||||
<value>Max mailbox size, MB</value>
|
<value>Mailbox storage, MB</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Quota.Exchange2007.DistributionLists" xml:space="preserve">
|
<data name="Quota.Exchange2007.DistributionLists" xml:space="preserve">
|
||||||
<value>Distribution Lists per Organization</value>
|
<value>Distribution Lists per Organization</value>
|
||||||
|
@ -2850,6 +2850,18 @@
|
||||||
<data name="Quota.Exchange2007.PublicFolders" xml:space="preserve">
|
<data name="Quota.Exchange2007.PublicFolders" xml:space="preserve">
|
||||||
<value>Public Folders per Organization</value>
|
<value>Public Folders per Organization</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Quota.Exchange2007.KeepDeletedItemsDays" xml:space="preserve">
|
||||||
|
<value>Keep Deleted Items (Days)</value>
|
||||||
|
</data>
|
||||||
|
<data name="Quota.Exchange2007.MaxRecipients" xml:space="preserve">
|
||||||
|
<value>Maximum Recipients</value>
|
||||||
|
</data>
|
||||||
|
<data name="Quota.Exchange2007.MaxSendMessageSizeKB" xml:space="preserve">
|
||||||
|
<value>Maximum Send Message Size (Kb)</value>
|
||||||
|
</data>
|
||||||
|
<data name="Quota.Exchange2007.MaxReceiveMessageSizeKB" xml:space="preserve">
|
||||||
|
<value>Maximum Receive Message Size (Kb)</value>
|
||||||
|
</data>
|
||||||
<data name="ResourceGroup.Exchange" xml:space="preserve">
|
<data name="ResourceGroup.Exchange" xml:space="preserve">
|
||||||
<value>Hosted Exchange</value>
|
<value>Hosted Exchange</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -4990,4 +5002,7 @@
|
||||||
<data name="Quota.HostedSharePoint.UseSharedSSL" xml:space="preserve">
|
<data name="Quota.HostedSharePoint.UseSharedSSL" xml:space="preserve">
|
||||||
<value>Use shared SSL Root</value>
|
<value>Use shared SSL Root</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Quota.Exchange2007.IsConsumer" xml:space="preserve">
|
||||||
|
<value>Consumer Organization Support</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
Binary file not shown.
After Width: | Height: | Size: 832 B |
Binary file not shown.
After Width: | Height: | Size: 676 B |
Binary file not shown.
After Width: | Height: | Size: 719 B |
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCancel.Text" xml:space="preserve">
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
<value>Cancel</value>
|
<value>Cancel</value>
|
||||||
|
@ -219,4 +219,7 @@
|
||||||
<data name="valRequirePlan.ErrorMessage" xml:space="preserve">
|
<data name="valRequirePlan.ErrorMessage" xml:space="preserve">
|
||||||
<value>Please select hosting plan</value>
|
<value>Please select hosting plan</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkIntegratedOUProvisioning.Text" xml:space="preserve">
|
||||||
|
<value>Automated Hosted Organization Provisioning</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating ActiveSync settings...');</value>
|
<value>ShowProgressDialog('Updating ActiveSync settings...');</value>
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
<value>Windows SharePoint Services</value>
|
<value>Windows SharePoint Services</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p>Exchange Server 2007 enables users who have mobile devices to synchronize mailbox data by using Exchange ActiveSync. Users can synchronize e-mail, contacts, calendars, and task folders. </p><p>
|
<value><p>Exchange Server enables users who have mobile devices to synchronize mailbox data by using Exchange ActiveSync. Users can synchronize e-mail, contacts, calendars, and task folders. </p><p>
|
||||||
ActiveSync mailbox policy allows you to apply a common set of security settings to all users in organization.
|
ActiveSync mailbox policy allows you to apply a common set of security settings to all users in organization.
|
||||||
</p></value>
|
</p></value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -112,13 +112,16 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="btnCancel" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value>Enter domain name, e.g. "mydomain.com" or "sub.mydomain.com"</value>
|
<value>Select a domain name, e.g. "mydomain.com" or "sub.mydomain.com"</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Add Domain Name</value>
|
<value>Add Domain Name</value>
|
||||||
|
|
|
@ -112,20 +112,17 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
|
||||||
<value>ShowProgressDialog('Updating mailbox settings...');</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSave.Text" xml:space="preserve">
|
|
||||||
<value>Save Changes</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkActiveSync.Text" xml:space="preserve">
|
<data name="chkActiveSync.Text" xml:space="preserve">
|
||||||
<value>ActiveSync</value>
|
<value>ActiveSync</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkHideFromAddressBook" xml:space="preserve">
|
||||||
|
<value>Hide from Addressbook</value>
|
||||||
|
</data>
|
||||||
<data name="chkIMAP.Text" xml:space="preserve">
|
<data name="chkIMAP.Text" xml:space="preserve">
|
||||||
<value>IMAP</value>
|
<value>IMAP</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -135,20 +132,11 @@
|
||||||
<data name="chkOWA.Text" xml:space="preserve">
|
<data name="chkOWA.Text" xml:space="preserve">
|
||||||
<value>OWA/HTTP</value>
|
<value>OWA/HTTP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkPmmAllowed.Text" xml:space="preserve">
|
|
||||||
<value>Allow these settings to be managed from <b>Personal Mailbox Manager</b></value>
|
|
||||||
</data>
|
|
||||||
<data name="chkPOP3.Text" xml:space="preserve">
|
<data name="chkPOP3.Text" xml:space="preserve">
|
||||||
<value>POP3</value>
|
<value>POP3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkUseOrgDeleteRetention.Text" xml:space="preserve">
|
|
||||||
<value>Use organization defaults</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkUseOrgStorageQuotas.Text" xml:space="preserve">
|
|
||||||
<value>Use organization defaults</value>
|
|
||||||
</data>
|
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p>In "Mailbox Features" section you may enable/disable specific access protocols for the mailbox.</p><p>You may override mailbox quotas and retention period defined on the organization level. Please note, that you cannot specify storage settings higher than defined in the space hosting plan.</p><p><b>Domain User Name</b> is used when setting up mailbox in Outlook 2003/2007.</p></value>
|
<value><p> A Mailbox plan is a template that defines the characteristics of a mailbox </p> <p>The mailbox plan name needs to be unique. A mailbox plan cannot be modified. In case a mailbox needs a mailbox plan with another characteristics, a new mailbox plan needs to be created and assigned to the mailbox. A mailbox plan can only be deleted when the plan is not assigned to any mailboxes. </p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locDays.Text" xml:space="preserve">
|
<data name="locDays.Text" xml:space="preserve">
|
||||||
<value>days</value>
|
<value>days</value>
|
||||||
|
@ -162,11 +150,17 @@
|
||||||
<data name="locKeepDeletedItems.Text" xml:space="preserve">
|
<data name="locKeepDeletedItems.Text" xml:space="preserve">
|
||||||
<value>Keep deleted items for:</value>
|
<value>Keep deleted items for:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locLastLogoff.Text" xml:space="preserve">
|
<data name="locMailboxSize.Text" xml:space="preserve">
|
||||||
<value>Last Logoff:</value>
|
<value>Mailbox size:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locLastLogon.Text" xml:space="preserve">
|
<data name="locMaxReceiveMessageSizeKB.Text" xml:space="preserve">
|
||||||
<value>Last Logon:</value>
|
<value>Maximum Receive Message Size:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locMaxRecipients.Text" xml:space="preserve">
|
||||||
|
<value>Maximum Recipients:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locMaxSendMessageSizeKB.Text" xml:space="preserve">
|
||||||
|
<value>Maximum Send Message Size:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locProhibitSend.Text" xml:space="preserve">
|
<data name="locProhibitSend.Text" xml:space="preserve">
|
||||||
<value>Prohibit send at:</value>
|
<value>Prohibit send at:</value>
|
||||||
|
@ -175,13 +169,7 @@
|
||||||
<value>Prohibit send and receive at:</value>
|
<value>Prohibit send and receive at:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Edit Mailbox</value>
|
<value>Add Mailbox plan</value>
|
||||||
</data>
|
|
||||||
<data name="locTotalItems.Text" xml:space="preserve">
|
|
||||||
<value>Total Items:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locTotalSize.Text" xml:space="preserve">
|
|
||||||
<value>Total Size (MB):</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="locWhenSizeExceeds.Text" xml:space="preserve">
|
<data name="locWhenSizeExceeds.Text" xml:space="preserve">
|
||||||
<value>When the mailbox size exceeds the indicated amount:</value>
|
<value>When the mailbox size exceeds the indicated amount:</value>
|
||||||
|
@ -189,19 +177,25 @@
|
||||||
<data name="secDeleteRetention.Text" xml:space="preserve">
|
<data name="secDeleteRetention.Text" xml:space="preserve">
|
||||||
<value>Delete Item Retention</value>
|
<value>Delete Item Retention</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="secDomainUser.Text" xml:space="preserve">
|
|
||||||
<value>Domain User Name</value>
|
|
||||||
</data>
|
|
||||||
<data name="secMailboxFeatures.Text" xml:space="preserve">
|
<data name="secMailboxFeatures.Text" xml:space="preserve">
|
||||||
<value>Mailbox Features</value>
|
<value>Mailbox Features</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="secStatistics.Text" xml:space="preserve">
|
<data name="secMailboxGeneral.Text" xml:space="preserve">
|
||||||
<value>Mailbox Statistics</value>
|
<value>General</value>
|
||||||
|
</data>
|
||||||
|
<data name="secMailboxPlan.Text" xml:space="preserve">
|
||||||
|
<value>Mailbox plan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="secStorageQuotas.Text" xml:space="preserve">
|
<data name="secStorageQuotas.Text" xml:space="preserve">
|
||||||
<value>Mailbox Quotas</value>
|
<value>Quotas</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Mailboxes</value>
|
<value>Mailbox plan</value>
|
||||||
|
</data>
|
||||||
|
<data name="valRequireMailboxPlan.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Please enter correct mailboxplan</value>
|
||||||
|
</data>
|
||||||
|
<data name="valRequireMailboxPlan.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating contact settings...');</value>
|
<value>ShowProgressDialog('Updating contact settings...');</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating contact settings...');</value>
|
<value>ShowProgressDialog('Updating contact settings...');</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreateContact.Text" xml:space="preserve">
|
<data name="btnCreateContact.Text" xml:space="preserve">
|
||||||
<value>Create New Contact</value>
|
<value>Create New Contact</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Creating contact...');</value>
|
<value>ShowProgressDialog('Creating contact...');</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Creating distribution list...');</value>
|
<value>ShowProgressDialog('Creating distribution list...');</value>
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
<value>Create Distribution List</value>
|
<value>Create Distribution List</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p><b>Display Name</b> will be shown in the GAL in Outlook and OWA.</p><p>You can add new Domain Names on "Domain Names" page. We always provide you with a free domain that would allow your organization migrating to Exchange as soon as possible.</p><p><b>Primary E-Mail Address</b> is shown in the GAL and in "From" field of all messages sent from this DL.</p></value>
|
<value><p><b>Display Name</b> will be shown in the GAL in Outlook and OWA.</p><p>You can add new Domain Names on "Domain Names" page. </p><p><b>Primary E-Mail Address</b> is shown in the GAL and in "From" field of all messages sent from this DL.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locAccount.Text" xml:space="preserve">
|
<data name="locAccount.Text" xml:space="preserve">
|
||||||
<value>E-mail Address: *</value>
|
<value>E-mail Address: *</value>
|
||||||
|
@ -132,22 +132,22 @@
|
||||||
<data name="locDisplayName.Text" xml:space="preserve">
|
<data name="locDisplayName.Text" xml:space="preserve">
|
||||||
<value>Display Name: *</value>
|
<value>Display Name: *</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locManagedBy.Text" xml:space="preserve">
|
||||||
|
<value>Managed by: *</value>
|
||||||
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Create New Distribution List</value>
|
<value>Create New Distribution List</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Distribution Lists</value>
|
<value>Distribution Lists</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="valManager.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Please specify a manager</value>
|
||||||
|
</data>
|
||||||
<data name="valRequireDisplayName.ErrorMessage" xml:space="preserve">
|
<data name="valRequireDisplayName.ErrorMessage" xml:space="preserve">
|
||||||
<value>Enter Display Name</value>
|
<value>Enter Display Name</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locManagedBy.Text" xml:space="preserve">
|
|
||||||
<value>Managed by: *</value>
|
|
||||||
</data>
|
|
||||||
<data name="valManager.ErrorMessage" xml:space="preserve">
|
|
||||||
<value>Please specify a manager</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Creating mailbox...');</value>
|
<value>ShowProgressDialog('Creating mailbox...');</value>
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
|
|
||||||
<p><b>E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p>
|
<p><b>E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p>
|
||||||
|
|
||||||
<p>New organization domains can be added on "Domain Names" page. Temporary domain name is provided by default to allow creating new accounts as soon as possible.</p>
|
<p>New organization domains can be added on "Domain Names" page.</p>
|
||||||
|
|
||||||
<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</value>
|
<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -156,6 +156,9 @@
|
||||||
<data name="locPassword.Text" xml:space="preserve">
|
<data name="locPassword.Text" xml:space="preserve">
|
||||||
<value>Password: *</value>
|
<value>Password: *</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
|
<value>Subscriber Number: *</value>
|
||||||
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Create New Mailbox</value>
|
<value>Create New Mailbox</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -183,4 +186,10 @@
|
||||||
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Enter Subscriber Number</value>
|
||||||
|
</data>
|
||||||
|
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAddEmail.Text" xml:space="preserve">
|
<data name="btnAddEmail.Text" xml:space="preserve">
|
||||||
<value>Add E-mail Address</value>
|
<value>Add E-mail Address</value>
|
||||||
|
@ -127,7 +127,7 @@
|
||||||
<value>Set As Primary</value>
|
<value>Set As Primary</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook 2003/2007 and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. We always provide you with a free domain that would allow your organization migrating to Exchange as soon as possible.</p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p></value>
|
<value><b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page.</p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gvEmailAddress.Header" xml:space="preserve">
|
<data name="gvEmailAddress.Header" xml:space="preserve">
|
||||||
<value>E-mail Address</value>
|
<value>E-mail Address</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating distribution list settings...');</value>
|
<value>ShowProgressDialog('Updating distribution list settings...');</value>
|
||||||
|
@ -144,13 +144,13 @@
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Distribution Lists</value>
|
<value>Distribution Lists</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="valManager.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Please specify a manager</value>
|
||||||
|
</data>
|
||||||
<data name="valRequireDisplayName.ErrorMessage" xml:space="preserve">
|
<data name="valRequireDisplayName.ErrorMessage" xml:space="preserve">
|
||||||
<value>Enter Display Name</value>
|
<value>Enter Display Name</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valManager.ErrorMessage" xml:space="preserve">
|
|
||||||
<value>Please specify a manager</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating distribution list settings...');</value>
|
<value>ShowProgressDialog('Updating distribution list settings...');</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreateList.Text" xml:space="preserve">
|
<data name="btnCreateList.Text" xml:space="preserve">
|
||||||
<value>Create New Distribution List</value>
|
<value>Create New Distribution List</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAddDomain.Text" xml:space="preserve">
|
<data name="btnAddDomain.Text" xml:space="preserve">
|
||||||
<value>Add New Domain</value>
|
<value>Add New Domain</value>
|
||||||
|
@ -142,11 +142,9 @@
|
||||||
<value>Domain Name</value>
|
<value>Domain Name</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p>Each organization can have several domain names. These domain names are used as part of the primary e-mail address (UPN) of the new accounts. Exchange-enabled organizations use domain name when creating e-mail addresses for mailboxes, distribution lists and mail-enabled public folders. Domain name is also used when creating new site collection in SharePoint.</p>
|
<value><p>Each organization can have several domain names. These domain names are used as part of the primary e-mail address (UPN) of the new accounts. Exchange-enabled organizations use domain name when creating e-mail addresses for mailboxes, and distribution lists. Domain name is also used when creating new site collection in SharePoint.</p>
|
||||||
|
|
||||||
<p>Default domain name is selected by default when creating a new e-mail address. You can always change default domain name and it will not affect existing accounts.</p>
|
<p>Default domain name is selected by default when creating a new e-mail address. You can always change default domain name and it will not affect existing accounts.</p>
|
||||||
|
<p>For each domain name a corresponding DNS Zone is created. You can edit DNS zone records by clicking domain name link. If you are unsure about the structure of DNS zone, please do not modify zone records.</p></value>
|
||||||
<p>For each domain name WebsitePanel creates a corresponding DNS Zone. You can edit DNS zone records by clicking domain name link. If you are unsure about the structure of DNS zone, please do not modify zone records.</p></value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="locQuota.Text" xml:space="preserve">
|
<data name="locQuota.Text" xml:space="preserve">
|
||||||
<value>Total Domain Names Used:</value>
|
<value>Total Domain Names Used:</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAdd.Text" xml:space="preserve">
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
<value>Add record</value>
|
<value>Add record</value>
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
<value>Save</value>
|
<value>Save</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p>For each domain name WebsitePanel creates a corresponding DNS Zone. If you are unsure about the structure of DNS zone, please do not modify zone records.</p></value>
|
<value><p>For each domain name a corresponding DNS Zone is created. If you are unsure about the structure of DNS zone, please do not modify zone records.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gvRecords.Empty" xml:space="preserve">
|
<data name="gvRecords.Empty" xml:space="preserve">
|
||||||
<value>No DNS records defined.</value>
|
<value>No DNS records defined.</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAddEmail.Text" xml:space="preserve">
|
<data name="btnAddEmail.Text" xml:space="preserve">
|
||||||
<value>Add E-mail Address</value>
|
<value>Add E-mail Address</value>
|
||||||
|
@ -130,7 +130,7 @@
|
||||||
<value>Allow these settings to be managed from <b>Personal Mailbox Manager</b></value>
|
<value>Allow these settings to be managed from <b>Personal Mailbox Manager</b></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook 2003/2007 and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. We always provide you with a free domain that would allow your organization migrating to Exchange as soon as possible.</p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p></value>
|
<value><b>Primary E-Mail Address</b> is a User Principal Name (UPN). It will be used as a login in Outlook and Outlook Web Access (OWA). Also, Primary E-Mail Address will be shown in "From" field of messages sent from this mailbox.</p><p>You can add new Domain Names on "Domain Names" page. </p><p>E-mail addresses of all Exchange accounts should be unique across the organization. You cannot add the same e-mail address to several accounts.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gvEmailAddress.Header" xml:space="preserve">
|
<data name="gvEmailAddress.Header" xml:space="preserve">
|
||||||
<value>E-mail Address</value>
|
<value>E-mail Address</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating mailbox settings...');</value>
|
<value>ShowProgressDialog('Updating mailbox settings...');</value>
|
||||||
|
@ -133,85 +133,22 @@
|
||||||
<value>Allow these settings to be managed from <b>Personal Mailbox Manager</b></value>
|
<value>Allow these settings to be managed from <b>Personal Mailbox Manager</b></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p>The General tab displays general information about the mailbox user. Use this tab to view or modify the display name, password, company information, contact information and address. You can also specify whether to disable the mailbox user or hide the mailbox user from Exchange address lists.</p></value>
|
<value><p>The General tab displays general information about the mailbox Use this tab to view or modify the mailbox characteristics such as size and show in your address book in the Exchange address lists. You can also specify whether to disable the mailbox user.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locAddress.Text" xml:space="preserve">
|
<data name="locMailboxplanName.Text" xml:space="preserve">
|
||||||
<value>Address:</value>
|
<value>Mailbox plan:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locBusinessPhone.Text" xml:space="preserve">
|
<data name="locQuota.Text" xml:space="preserve">
|
||||||
<value>Business Phone:</value>
|
<value>Mailbox size:</value>
|
||||||
</data>
|
|
||||||
<data name="locCity.Text" xml:space="preserve">
|
|
||||||
<value>City:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locCompany.Text" xml:space="preserve">
|
|
||||||
<value>Company:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locCountry.Text" xml:space="preserve">
|
|
||||||
<value>Country/Region:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locDepartment.Text" xml:space="preserve">
|
|
||||||
<value>Department:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locDisplayName.Text" xml:space="preserve">
|
|
||||||
<value>Display Name: *</value>
|
|
||||||
</data>
|
|
||||||
<data name="locFax.Text" xml:space="preserve">
|
|
||||||
<value>Fax:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locFirstName.Text" xml:space="preserve">
|
|
||||||
<value>First Name:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locHomePhone.Text" xml:space="preserve">
|
|
||||||
<value>Home Phone:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locInitials.Text" xml:space="preserve">
|
|
||||||
<value>Initials:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locJobTitle.Text" xml:space="preserve">
|
|
||||||
<value>Job Title:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locLastName.Text" xml:space="preserve">
|
|
||||||
<value>Last Name:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locManager.Text" xml:space="preserve">
|
|
||||||
<value>Manager:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locMobilePhone.Text" xml:space="preserve">
|
|
||||||
<value>Mobile Phone:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locNotes.Text" xml:space="preserve">
|
|
||||||
<value>Notes:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locOffice.Text" xml:space="preserve">
|
|
||||||
<value>Office:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locPager.Text" xml:space="preserve">
|
|
||||||
<value>Pager:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locPassword.Text" xml:space="preserve">
|
|
||||||
<value>Password:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locState.Text" xml:space="preserve">
|
|
||||||
<value>State/Province:</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Edit Mailbox</value>
|
<value>Edit Mailbox</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locWebPage.Text" xml:space="preserve">
|
<data name="secCalendarSettings.Text" xml:space="preserve">
|
||||||
<value>Web Page:</value>
|
<value>Calendar Settings</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locZip.Text" xml:space="preserve">
|
<data name="secGeneral.Text" xml:space="preserve">
|
||||||
<value>Zip/Postal Code:</value>
|
<value>General</value>
|
||||||
</data>
|
|
||||||
<data name="secAddressInfo.Text" xml:space="preserve">
|
|
||||||
<value>Address</value>
|
|
||||||
</data>
|
|
||||||
<data name="secCompanyInfo.Text" xml:space="preserve">
|
|
||||||
<value>Company Information</value>
|
|
||||||
</data>
|
|
||||||
<data name="secContactInfo.Text" xml:space="preserve">
|
|
||||||
<value>Contact Information</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Mailboxes</value>
|
<value>Mailboxes</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating mailbox settings...');</value>
|
<value>ShowProgressDialog('Updating mailbox settings...');</value>
|
||||||
|
|
|
@ -112,13 +112,13 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="deviceUserAgentColumn.HeaderText" xml:space="preserve">
|
<data name="cmdDelete.OnClientClick" xml:space="preserve">
|
||||||
<value>User Agent</value>
|
<value>return confirm('Are you sure you want to remove the device partnership?');</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="deviceStatus.HeaderText" xml:space="preserve">
|
<data name="deviceStatus.HeaderText" xml:space="preserve">
|
||||||
<value>Status</value>
|
<value>Status</value>
|
||||||
|
@ -126,34 +126,34 @@
|
||||||
<data name="deviceTypeColumn.HeaderText" xml:space="preserve">
|
<data name="deviceTypeColumn.HeaderText" xml:space="preserve">
|
||||||
<value>Type</value>
|
<value>Type</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="deviceUserAgentColumn.HeaderText" xml:space="preserve">
|
||||||
|
<value>User Agent</value>
|
||||||
|
</data>
|
||||||
<data name="gvMobile.EmptyDataText" xml:space="preserve">
|
<data name="gvMobile.EmptyDataText" xml:space="preserve">
|
||||||
<value>There are no mobile devices.</value>
|
<value>There are no mobile devices.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>Manage mobile devices here.</p><p>To add a new device, begin a partnership with Microsoft Exchange from the device and it will appear in the device list.</p><p>You can remove devices that you are no longer using. If you forget your device password, you can access it here. If you lose your phone or mobile device, you can initiate a remote device wipe to protect your information.</p></value>
|
||||||
|
</data>
|
||||||
<data name="lastSyncTimeColumn.HeaderText" xml:space="preserve">
|
<data name="lastSyncTimeColumn.HeaderText" xml:space="preserve">
|
||||||
<value>Last Sync Time</value>
|
<value>Last Sync Time</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Edit Mailbox</value>
|
||||||
|
</data>
|
||||||
<data name="OK" xml:space="preserve">
|
<data name="OK" xml:space="preserve">
|
||||||
<value>OK</value>
|
<value>OK</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PendingWipe" xml:space="preserve">
|
<data name="PendingWipe" xml:space="preserve">
|
||||||
<value>Pending Wipe</value>
|
<value>Pending Wipe</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Edit Mailbox</value>
|
||||||
|
</data>
|
||||||
<data name="Unknown" xml:space="preserve">
|
<data name="Unknown" xml:space="preserve">
|
||||||
<value>Unknown</value>
|
<value>Unknown</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WipeSuccessful" xml:space="preserve">
|
<data name="WipeSuccessful" xml:space="preserve">
|
||||||
<value>Wipe Successful</value>
|
<value>Wipe Successful</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmdDelete.OnClientClick" xml:space="preserve">
|
|
||||||
<value>return confirm('Are you sure you want to remove the device partnership?');</value>
|
|
||||||
</data>
|
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
|
||||||
<value>Edit Mailbox</value>
|
|
||||||
</data>
|
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
|
||||||
<value>Edit Mailbox</value>
|
|
||||||
</data>
|
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
|
||||||
<value><p>Manage mobile devices here.</p><p>To add a new device, begin a partnership with Microsoft Exchange from the device and it will appear in the device list.</p><p>You can remove devices that you are no longer using. If you forget your device password, you can access it here. If you lose your phone or mobile device, you can initiate a remote device wipe to protect your information.</p></value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,11 +112,26 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="btnBack.Text" xml:space="preserve">
|
||||||
|
<value>Back</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel Pending Wipe Request</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnWipeAllData.OnClientClick" xml:space="preserve">
|
||||||
|
<value>return confirm('Are you sure you want to wipe all data from your device?');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnWipeAllData.Text" xml:space="preserve">
|
||||||
|
<value>Wipe All Data from Device</value>
|
||||||
|
</data>
|
||||||
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>Manage the mobile device here.</p><p>If you forget your device password, you can access it here. If you lose your phone or mobile device, you can initiate a remote device wipe to protect your information . You can also cancel a wipe request if it was initiated by accident or the device was found subsequently.</p></value>
|
||||||
|
</data>
|
||||||
<data name="locDeviceAcnowledgeTime.Text" xml:space="preserve">
|
<data name="locDeviceAcnowledgeTime.Text" xml:space="preserve">
|
||||||
<value>Device wipe acnowledge time:</value>
|
<value>Device wipe acnowledge time:</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -165,37 +180,22 @@
|
||||||
<data name="locStatus.Text" xml:space="preserve">
|
<data name="locStatus.Text" xml:space="preserve">
|
||||||
<value>Status:</value>
|
<value>Status:</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Edit Mailbox</value>
|
||||||
|
</data>
|
||||||
<data name="OK" xml:space="preserve">
|
<data name="OK" xml:space="preserve">
|
||||||
<value>OK</value>
|
<value>OK</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PendingWipe" xml:space="preserve">
|
<data name="PendingWipe" xml:space="preserve">
|
||||||
<value>Pending wipe</value>
|
<value>Pending wipe</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Edit Mailbox</value>
|
||||||
|
</data>
|
||||||
<data name="Unknown" xml:space="preserve">
|
<data name="Unknown" xml:space="preserve">
|
||||||
<value>Unknown</value>
|
<value>Unknown</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WipeSuccessful" xml:space="preserve">
|
<data name="WipeSuccessful" xml:space="preserve">
|
||||||
<value>Wipe successful</value>
|
<value>Wipe successful</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnBack.Text" xml:space="preserve">
|
|
||||||
<value>Back</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnCancel.Text" xml:space="preserve">
|
|
||||||
<value>Cancel Pending Wipe Request</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnWipeAllData.Text" xml:space="preserve">
|
|
||||||
<value>Wipe All Data from Device</value>
|
|
||||||
</data>
|
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
|
||||||
<value>Edit Mailbox</value>
|
|
||||||
</data>
|
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
|
||||||
<value>Edit Mailbox</value>
|
|
||||||
</data>
|
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
|
||||||
<value><p>Manage the mobile device here.</p><p>If you forget your device password, you can access it here. If you lose your phone or mobile device, you can initiate a remote device wipe to protect your information . You can also cancel a wipe request if it was initiated by accident or the device was found subsequently.</p></value>
|
|
||||||
</data>
|
|
||||||
<data name="btnWipeAllData.OnClientClick" xml:space="preserve">
|
|
||||||
<value>return confirm('Are you sure you want to wipe all data from your device?');</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,17 +112,23 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating mailbox permissions...');</value>
|
<value>ShowProgressDialog('Updating mailbox permissions...');</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnSave.Text" xml:space="preserve">
|
||||||
|
<value>Save Changes</value>
|
||||||
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p>When you grant <b>Full Access</b> permission to a user, that user can open this mailbox and access all of its content.</p> <br><p>When you grant <b>Send As</b> permission to a user, that user can send messages as this mailbox. </p> <br><p>We do not recommend to use this setting together “Send on behalf” (“Send as”) – it may work unpredictable</p></value>
|
<value><p>When you grant <b>Full Access</b> permission to a user, that user can open this mailbox and access all of its content.</p> <br><p>When you grant <b>Send As</b> permission to a user, that user can send messages as this mailbox. </p> <br><p>We do not recommend to use this setting together “Send on behalf” (“Send as”) – it may work unpredictable</p></value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="grandPermission.Text" xml:space="preserve">
|
||||||
|
<value>Grant this permission to:</value>
|
||||||
|
</data>
|
||||||
<data name="secFullAccessPermission.Text" xml:space="preserve">
|
<data name="secFullAccessPermission.Text" xml:space="preserve">
|
||||||
<value>Full Access</value>
|
<value>Full Access</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -132,10 +138,4 @@
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Permissions</value>
|
<value>Permissions</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grandPermission.Text" xml:space="preserve">
|
|
||||||
<value>Grant this permission to:</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSave.Text" xml:space="preserve">
|
|
||||||
<value>Save Changes</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,36 +112,42 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="locDomainTemplates.Text" xml:space="preserve">
|
<data name="btnAddMailboxPlan.Text" xml:space="preserve">
|
||||||
<value>Domain Templates</value>
|
<value>Add New Mailbox plan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locEcpDomain.Text" xml:space="preserve">
|
<data name="btnSetDefaultMailboxPlan.Text" xml:space="preserve">
|
||||||
<value>Exchange Control Panel URL:</value>
|
<value>Set Default Mailbox plan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locEcpURLDescr.Text" xml:space="preserve">
|
<data name="cmdDelete.OnClientClick" xml:space="preserve">
|
||||||
<value>You can use [DOMAIN_NAME] variable for organization default domain.</value>
|
<value>if(!confirm('Are you sure you want to delete selected mailbox plan?')) return false; else ShowProgressDialog('Deleting Mailbox plan...');</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locOfferID.Text" xml:space="preserve">
|
<data name="cmdDelete.Text" xml:space="preserve">
|
||||||
<value>Offer ID:</value>
|
<value>Delete</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locOrganizationTemplate.Text" xml:space="preserve">
|
<data name="cmdDelete.ToolTip" xml:space="preserve">
|
||||||
<value>Organization Template</value>
|
<value>Delete Mailbox plan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locProgramID.Text" xml:space="preserve">
|
<data name="gvMailboxPlan.Header" xml:space="preserve">
|
||||||
<value>Program ID:</value>
|
<value>Mailbox plan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTemporaryDomain.Text" xml:space="preserve">
|
<data name="gvMailboxPlanDefault.Header" xml:space="preserve">
|
||||||
<value>Temporary domain:</value>
|
<value>Default Mailbox plan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="requireOfferID.Text" xml:space="preserve">
|
<data name="gvMailboxPlans.Empty" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>No mailbox plans have been added yet. To add a new mailbox plan click "Add New Mailbox plan" button.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="requireProgramID.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value><p> A Mailbox plan is a template that defines the characteristics of a mailbox </p> <p>The mailbox plan name needs to be unique. A mailbox plan cannot be modified. In case a mailbox needs a mailbox plan with another characteristics, a new mailbox plan needs to be created and assigned to the mailbox. A mailbox plan can only be deleted when the plan is not assigned to any mailboxes. </p></value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Mailbox plans</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Mailbox plans</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSend.Text" xml:space="preserve">
|
<data name="btnSend.Text" xml:space="preserve">
|
||||||
<value>Send</value>
|
<value>Send</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreateMailbox.Text" xml:space="preserve">
|
<data name="btnCreateMailbox.Text" xml:space="preserve">
|
||||||
<value>Create New Mailbox</value>
|
<value>Create New Mailbox</value>
|
||||||
|
@ -132,6 +132,9 @@
|
||||||
<data name="cmdSearch.AlternateText" xml:space="preserve">
|
<data name="cmdSearch.AlternateText" xml:space="preserve">
|
||||||
<value>Search</value>
|
<value>Search</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ddlSearchColumnAccountName.Text" xml:space="preserve">
|
||||||
|
<value>Domain Account</value>
|
||||||
|
</data>
|
||||||
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
|
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
|
||||||
<value>Display Name</value>
|
<value>Display Name</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -147,6 +150,12 @@
|
||||||
<data name="gvMailboxesEmail.Header" xml:space="preserve">
|
<data name="gvMailboxesEmail.Header" xml:space="preserve">
|
||||||
<value>Primary E-mail Address</value>
|
<value>Primary E-mail Address</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="gvMailboxesMailboxPlan.Header" xml:space="preserve">
|
||||||
|
<value>Mailbox plan</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSubscriberNumber.Header" xml:space="preserve">
|
||||||
|
<value>Subscriber</value>
|
||||||
|
</data>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p><b>Mailboxes</b> are used to receive and send electronic messages. Each mailbox is a separate Exchange account which may be a person, room or inventory unit.</p>
|
<value><p><b>Mailboxes</b> are used to receive and send electronic messages. Each mailbox is a separate Exchange account which may be a person, room or inventory unit.</p>
|
||||||
|
|
||||||
|
@ -165,7 +174,4 @@
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Mailboxes</value>
|
<value>Mailboxes</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ddlSearchColumnAccountName.Text" xml:space="preserve">
|
|
||||||
<value>Domain Account</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -1,162 +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="btnSave.OnClientClick" xml:space="preserve">
|
|
||||||
<value>ShowProgressDialog('Updating storage settings...');</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSave.Text" xml:space="preserve">
|
|
||||||
<value>Save Changes</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSaveApply.OnClientClick" xml:space="preserve">
|
|
||||||
<value>if(!confirm('Please be aware that applying new storage settings to all mailboxes can take significant time to complete. Do you want to proceed?')) return false; else ShowProgressDialog('Applying storage settings to mailboxes...');</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSaveApply.Text" xml:space="preserve">
|
|
||||||
<value>Save and Apply to All Mailboxes</value>
|
|
||||||
</data>
|
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
|
||||||
<value><p>You can change storage limits and deleted items retention policy.</p><p>The settings will be applied for for new mailboxes only. By clicking "Save and Apply to All Mailboxes" button you can override these settings for all existing mailboxes.</p><p>Please note, that you cannot specify storage settings higher than defined in the space hosting plan.</p></value>
|
|
||||||
</data>
|
|
||||||
<data name="locIssueWarning.Text" xml:space="preserve">
|
|
||||||
<value>Issue warning at:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locKeepDeletedItems.Text" xml:space="preserve">
|
|
||||||
<value>Keep deleted items for:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locProhibitSend.Text" xml:space="preserve">
|
|
||||||
<value>Prohibit send at:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locProhibitSendReceive.Text" xml:space="preserve">
|
|
||||||
<value>Prohibit send and receive at:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
|
||||||
<value>Storage Settings</value>
|
|
||||||
</data>
|
|
||||||
<data name="locWhenSizeExceeds.Text" xml:space="preserve">
|
|
||||||
<value>When the mailbox size exceeds the indicated amount:</value>
|
|
||||||
</data>
|
|
||||||
<data name="secDeletionSettings.Text" xml:space="preserve">
|
|
||||||
<value>Deletion Settings</value>
|
|
||||||
</data>
|
|
||||||
<data name="secStorageLimits.Text" xml:space="preserve">
|
|
||||||
<value>Storage Settings</value>
|
|
||||||
</data>
|
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
|
||||||
<value>Storage Settings</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnRecalculate.OnClientClick" xml:space="preserve">
|
<data name="btnRecalculate.OnClientClick" xml:space="preserve">
|
||||||
<value>return confirm('Recalculating organization disk space may require certain time to complete and this task will be performed asynchronously. New disk space value will be available in a few minutes. Proceed with disk space calculation?');</value>
|
<value>return confirm('Recalculating organization disk space may require certain time to complete and this task will be performed asynchronously. New disk space value will be available in a few minutes. Proceed with disk space calculation?');</value>
|
||||||
|
@ -123,8 +123,11 @@
|
||||||
<data name="btnRecalculate.Text" xml:space="preserve">
|
<data name="btnRecalculate.Text" xml:space="preserve">
|
||||||
<value>Recalculate Disk Space</value>
|
<value>Recalculate Disk Space</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnUsedSize.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Please wait...');</value>
|
||||||
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p>Organization disk space usage is calculated on timely basis (usually once a day). You can recalculate it right now by clicking "Recalculate Disk Space" button.</p><p>Click on the link with used disk space to see usage breakdown by all organization mailboxes and public folders.</p></value>
|
<value><p>Organization disk space actual usage is calculated on timely basis (usually once a day). You can recalculate it right now by clicking "Recalculate Disk Space" button.</p><p>Click on the link with used disk space to see actual usage breakdown by all organization mailboxes.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locAllocatedSize.Text" xml:space="preserve">
|
<data name="locAllocatedSize.Text" xml:space="preserve">
|
||||||
<value>Allocated Disk Space (MB):</value>
|
<value>Allocated Disk Space (MB):</value>
|
||||||
|
@ -136,7 +139,7 @@
|
||||||
<value>Storage Usage</value>
|
<value>Storage Usage</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locUsedSize.Text" xml:space="preserve">
|
<data name="locUsedSize.Text" xml:space="preserve">
|
||||||
<value>Used Disk Space (MB):</value>
|
<value>Allocated Disk Space (MB):</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Storage Usage</value>
|
<value>Storage Usage</value>
|
||||||
|
@ -144,7 +147,4 @@
|
||||||
<data name="Unlimited.Text" xml:space="preserve">
|
<data name="Unlimited.Text" xml:space="preserve">
|
||||||
<value>Unlimited</value>
|
<value>Unlimited</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnUsedSize.OnClientClick" xml:space="preserve">
|
|
||||||
<value>ShowProgressDialog('Please wait...');</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value> OK </value>
|
<value> OK </value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Creating Organization...');</value>
|
<value>ShowProgressDialog('Creating Organization...');</value>
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
<value>Create Organization</value>
|
<value>Create Organization</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormComments.Text" xml:space="preserve">
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
<value><p><b>Organization name</b> is used just as display name for references purposes. It will not be used somewhere on Exchange Server.</p> <p><b>Organization ID</b> is an unique organization identifier. It can contain only numbers and letters and cannot be longer than 9 symbols. Organization ID will be used as GAL name and as a root public folder.</p></value>
|
<value><p><b>Organization name</b> is used just as display name for references purposes. It will not be used somewhere on Exchange Server.</p> <p><b>Organization ID</b> is an unique organization identifier. Organization ID will be used as GAL name.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locOrganizationID.Text" xml:space="preserve">
|
<data name="locOrganizationID.Text" xml:space="preserve">
|
||||||
<value>Organization ID: *</value>
|
<value>Organization ID: *</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Creating user...');</value>
|
<value>ShowProgressDialog('Creating user...');</value>
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
|
|
||||||
<p><b>E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p>
|
<p><b>E-Mail Address</b> is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p>
|
||||||
|
|
||||||
<p>New organization domains can be added on "Domain Names" page. Temporary domain name is provided by default to allow creating new users as soon as possible.</p>
|
<p>New organization domains can be added on "Domain Names" page.</p>
|
||||||
|
|
||||||
<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</p></value>
|
<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</p></value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -144,6 +144,9 @@
|
||||||
<data name="locPassword.Text" xml:space="preserve">
|
<data name="locPassword.Text" xml:space="preserve">
|
||||||
<value>Password: *</value>
|
<value>Password: *</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
|
<value>Subscriber Number: *</value>
|
||||||
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Create New User</value>
|
<value>Create New User</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -156,4 +159,10 @@
|
||||||
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Enter Subscriber Number</value>
|
||||||
|
</data>
|
||||||
|
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,57 +112,16 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p>Welcome to the organization home page!</p>
|
<value><p>Welcome to the organization home page!</p>
|
||||||
|
|
||||||
<p>Using the left menu you can manage organization domain names and users.</p>
|
<p>Using the left menu you can manage organization domain names and users.</p>
|
||||||
|
|
||||||
<p>Organization statistics displays current status of the organization.</p></value>
|
<p>Organization statistics displays current status of the organization.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lnkAllocatedDiskspace.Text" xml:space="preserve">
|
|
||||||
<value>Allocated Diskspace (MB)</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkContacts.Text" xml:space="preserve">
|
|
||||||
<value>Contacts:</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkDomains.Text" xml:space="preserve">
|
|
||||||
<value>Domain Names:</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkFolders.Text" xml:space="preserve">
|
|
||||||
<value>Public Folders:</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkLists.Text" xml:space="preserve">
|
|
||||||
<value>Distribution Lists:</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkMailboxes.Text" xml:space="preserve">
|
|
||||||
<value>Mailboxes:</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkSiteCollections.Text" xml:space="preserve">
|
|
||||||
<value>Site Collections:</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkUsedDiskspace.Text" xml:space="preserve">
|
|
||||||
<value>Used Diskspace (MB)</value>
|
|
||||||
</data>
|
|
||||||
<data name="lnkUsers.Text" xml:space="preserve">
|
|
||||||
<value>Users:</value>
|
|
||||||
</data>
|
|
||||||
<data name="locHeadStatistics.Text" xml:space="preserve">
|
|
||||||
<value>Organization Statistics</value>
|
|
||||||
</data>
|
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
|
||||||
<value>Home</value>
|
|
||||||
</data>
|
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
|
||||||
<value>Home</value>
|
|
||||||
</data>
|
|
||||||
<data name="Unlimited.Text" xml:space="preserve">
|
|
||||||
<value>Unlimited</value>
|
|
||||||
</data>
|
|
||||||
<data name="lblCreated.Text" xml:space="preserve">
|
<data name="lblCreated.Text" xml:space="preserve">
|
||||||
<value>Created:</value>
|
<value>Created:</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -172,22 +131,82 @@
|
||||||
<data name="lblOrganizationName.Text" xml:space="preserve">
|
<data name="lblOrganizationName.Text" xml:space="preserve">
|
||||||
<value>Organization Name:</value>
|
<value>Organization Name:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lnkCRMUsers.Text" xml:space="preserve">
|
|
||||||
<value>CRM Users:</value>
|
|
||||||
</data>
|
|
||||||
<data name="litTotalUserDiskSpace.Text" xml:space="preserve">
|
<data name="litTotalUserDiskSpace.Text" xml:space="preserve">
|
||||||
<value>Total Used Disk Space, MB:</value>
|
<value>Total Used Disk Space, MB:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="litUsedDiskSpace.Text" xml:space="preserve">
|
<data name="litUsedDiskSpace.Text" xml:space="preserve">
|
||||||
<value>Used Disk Space, MB:</value>
|
<value>Used Disk Space, MB:</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lnkAllocatedDiskspace.Text" xml:space="preserve">
|
||||||
|
<value>Allocated Diskspace (MB)</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkBESUsers.Text" xml:space="preserve">
|
||||||
|
<value>BlackBerry Users:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkContacts.Text" xml:space="preserve">
|
||||||
|
<value>Contacts:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkCRMUsers.Text" xml:space="preserve">
|
||||||
|
<value>CRM Users:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkDomains.Text" xml:space="preserve">
|
||||||
|
<value>Domain Names:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkExchangeStorage.Text" xml:space="preserve">
|
||||||
|
<value>Storage (Mb):</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkFolders.Text" xml:space="preserve">
|
||||||
|
<value>Public Folders:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkLists.Text" xml:space="preserve">
|
||||||
|
<value>Distribution Lists:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkLyncUsers.Text" xml:space="preserve">
|
||||||
|
<value>Users:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkMailboxes.Text" xml:space="preserve">
|
||||||
|
<value>Mailboxes:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkOCSUsers.Text" xml:space="preserve">
|
||||||
|
<value>OCS Users:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkSiteCollections.Text" xml:space="preserve">
|
||||||
|
<value>Site Collections:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkUsedDiskspace.Text" xml:space="preserve">
|
||||||
|
<value>Used Diskspace (MB)</value>
|
||||||
|
</data>
|
||||||
|
<data name="lnkUsers.Text" xml:space="preserve">
|
||||||
|
<value>Users:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locBESStatistics.Text" xml:space="preserve">
|
||||||
|
<value>BlackBerry</value>
|
||||||
|
</data>
|
||||||
<data name="locCRM.Text" xml:space="preserve">
|
<data name="locCRM.Text" xml:space="preserve">
|
||||||
<value>CRM</value>
|
<value>CRM</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locExchangeStatistics.Text" xml:space="preserve">
|
<data name="locExchangeStatistics.Text" xml:space="preserve">
|
||||||
<value>Exchange</value>
|
<value>Exchange</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locHeadStatistics.Text" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
</data>
|
||||||
|
<data name="locLyncStatistics.Text" xml:space="preserve">
|
||||||
|
<value>Lync</value>
|
||||||
|
</data>
|
||||||
|
<data name="locOCSStatistics.Text" xml:space="preserve">
|
||||||
|
<value>OCS</value>
|
||||||
|
</data>
|
||||||
<data name="locSharePoint.Text" xml:space="preserve">
|
<data name="locSharePoint.Text" xml:space="preserve">
|
||||||
<value>SharePoint</value>
|
<value>SharePoint</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Home</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Home</value>
|
||||||
|
</data>
|
||||||
|
<data name="Unlimited.Text" xml:space="preserve">
|
||||||
|
<value>Unlimited</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSave.OnClientClick" xml:space="preserve">
|
<data name="btnSave.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Updating user settings...');</value>
|
<value>ShowProgressDialog('Updating user settings...');</value>
|
||||||
|
@ -126,11 +126,15 @@
|
||||||
<data name="chkDisable.Text" xml:space="preserve">
|
<data name="chkDisable.Text" xml:space="preserve">
|
||||||
<value>Disable User</value>
|
<value>Disable User</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkLocked.Text" xml:space="preserve">
|
||||||
|
<value>Account is locked out</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkSetPassword.Text" xml:space="preserve">
|
||||||
|
<value>Set Password</value>
|
||||||
|
</data>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p><b>Display Name</b> is a “friendly” name used by other programs, such as Microsoft Exchange or SharePoint.</p>
|
<value><p><b>Display Name</b> is a “friendly” name used by other programs, such as Microsoft Exchange or SharePoint.</p>
|
||||||
|
|
||||||
<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</p>
|
<p>Make sure your password is strong enough, i.e. contains lower and capital letters, numbers and symbols.</p>
|
||||||
|
|
||||||
<p>You can specify manager account to build organizational structure of your company.</p></value>
|
<p>You can specify manager account to build organizational structure of your company.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locAddress.Text" xml:space="preserve">
|
<data name="locAddress.Text" xml:space="preserve">
|
||||||
|
@ -154,6 +158,9 @@
|
||||||
<data name="locDisplayName.Text" xml:space="preserve">
|
<data name="locDisplayName.Text" xml:space="preserve">
|
||||||
<value>Display Name: *</value>
|
<value>Display Name: *</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locExternalEmailAddress.Text" xml:space="preserve">
|
||||||
|
<value>External e-mail:</value>
|
||||||
|
</data>
|
||||||
<data name="locFax.Text" xml:space="preserve">
|
<data name="locFax.Text" xml:space="preserve">
|
||||||
<value>Fax:</value>
|
<value>Fax:</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -193,6 +200,9 @@
|
||||||
<data name="locState.Text" xml:space="preserve">
|
<data name="locState.Text" xml:space="preserve">
|
||||||
<value>State/Province:</value>
|
<value>State/Province:</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
|
<value>Subscriber Number:</value>
|
||||||
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Edit User</value>
|
<value>Edit User</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -226,10 +236,4 @@
|
||||||
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
<data name="valRequireDisplayName.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locExternalEmailAddress.Text" xml:space="preserve">
|
|
||||||
<value>External e-mail:</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkLocked.Text" xml:space="preserve">
|
|
||||||
<value>Account is locked out</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnSend.Text" xml:space="preserve">
|
<data name="btnSend.Text" xml:space="preserve">
|
||||||
<value>Send</value>
|
<value>Send</value>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreateUser.Text" xml:space="preserve">
|
<data name="btnCreateUser.Text" xml:space="preserve">
|
||||||
<value>Create New User</value>
|
<value>Create New User</value>
|
||||||
|
@ -132,12 +132,21 @@
|
||||||
<data name="cmdSearch.AlternateText" xml:space="preserve">
|
<data name="cmdSearch.AlternateText" xml:space="preserve">
|
||||||
<value>Search</value>
|
<value>Search</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ddlSearchColumnAccountName.Text" xml:space="preserve">
|
||||||
|
<value>Domain Account</value>
|
||||||
|
</data>
|
||||||
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
|
<data name="ddlSearchColumnDisplayName.Text" xml:space="preserve">
|
||||||
<value>Display Name</value>
|
<value>Display Name</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ddlSearchColumnEmail.Text" xml:space="preserve">
|
<data name="ddlSearchColumnEmail.Text" xml:space="preserve">
|
||||||
<value>E-mail Address</value>
|
<value>E-mail Address</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ddlSearchColumnSubscriberNumber" xml:space="preserve">
|
||||||
|
<value>Subscriber Number</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSubscriberNumber.Header" xml:space="preserve">
|
||||||
|
<value>Subscriber</value>
|
||||||
|
</data>
|
||||||
<data name="gvUsers.Empty" xml:space="preserve">
|
<data name="gvUsers.Empty" xml:space="preserve">
|
||||||
<value>No users have been created. To create a new user click "Create New Users" button.</value>
|
<value>No users have been created. To create a new user click "Create New Users" button.</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -149,14 +158,11 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p>Active Directory user accounts are used to:</p>
|
<value><p>Active Directory user accounts are used to:</p>
|
||||||
|
|
||||||
<p>• Authenticate the identity of a user.<br>
|
<p>• Authenticate the identity of a user.<br>
|
||||||
• Authorize or deny access to domain resources.<br>
|
• Authorize or deny access to domain resources.<br>
|
||||||
• Administer other security principals.<br>
|
• Administer other security principals.<br>
|
||||||
• Audit actions performed using the user account.</p>
|
• Audit actions performed using the user account.</p>
|
||||||
|
|
||||||
<p>Primary E-Mail Address is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p>
|
<p>Primary E-Mail Address is a User Principal Name (UPN). It is used as a logon name in Outlook, Outlook Web Access (OWA) or SharePoint.</p>
|
||||||
|
|
||||||
<p>User account can also represent Exchange mailbox, which may be a person, room or inventory unit.</p></value>
|
<p>User account can also represent Exchange mailbox, which may be a person, room or inventory unit.</p></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locQuota.Text" xml:space="preserve">
|
<data name="locQuota.Text" xml:space="preserve">
|
||||||
|
@ -168,7 +174,4 @@
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Users</value>
|
<value>Users</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ddlSearchColumnAccountName.Text" xml:space="preserve">
|
|
||||||
<value>Domain Account</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnCreate.Text" xml:space="preserve">
|
<data name="btnCreate.Text" xml:space="preserve">
|
||||||
<value>Create New Organization</value>
|
<value>Create New Organization</value>
|
||||||
|
@ -158,10 +158,8 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="HSFormComments.Text" xml:space="preserve">
|
<data name="HSFormComments.Text" xml:space="preserve">
|
||||||
<value><p><b>Organization</b> is a group of Active Directory users, contacts and groups.<br><br>
|
<value><p><b>Organization</b> is a group of Active Directory users, contacts and groups.<br><br>
|
||||||
|
|
||||||
All accounts within one organization are located in the same Organizational Unit and are not visible to members of other organizations.<br><br>
|
All accounts within one organization are located in the same Organizational Unit and are not visible to members of other organizations.<br><br>
|
||||||
|
Exchange-enabled organization has its own Global Address List (GAL) and Offline Address Book (OAB). Mailboxes, contacts, and distribution lists of Exchange-enabled organization share the same GAL and OAB</p></value>
|
||||||
Exchange-enabled organization has its own Global Address List (GAL) and Offline Address Book (OAB). Mailboxes, contacts, distribution lists and public folders of Exchange-enabled organization share the same GAL and OAB</p></value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="locQuota.Text" xml:space="preserve">
|
<data name="locQuota.Text" xml:space="preserve">
|
||||||
<value>Total Organizations Created:</value>
|
<value>Total Organizations Created:</value>
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
<asp:Localize ID="locMaxAttachmentSize" runat="server"
|
<asp:Localize ID="locMaxAttachmentSize" runat="server"
|
||||||
meta:resourcekey="locMaxAttachmentSize" Text="Maximum attachment size:"></asp:Localize></td>
|
meta:resourcekey="locMaxAttachmentSize" Text="Maximum attachment size:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeMaxAttachmentSize" runat="server" ValidationGroup="EditMailbox" />
|
<wsp:SizeBox id="sizeMaxAttachmentSize" runat="server" ValidationGroup="EditMailbox" DisplayUnitsKB="true" DisplayUnitsMB="false" DisplayUnitsPct="false"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -137,7 +137,7 @@
|
||||||
<asp:Localize ID="locNumberAttempts" runat="server"
|
<asp:Localize ID="locNumberAttempts" runat="server"
|
||||||
meta:resourcekey="locNumberAttempts" Text="Number of failed attempts allowed:"></asp:Localize></td>
|
meta:resourcekey="locNumberAttempts" Text="Number of failed attempts allowed:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeNumberAttempts" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" />
|
<wsp:SizeBox id="sizeNumberAttempts" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="false"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
meta:resourcekey="locMinimumPasswordLength" Text="Minimum password length:"></asp:Localize></td>
|
meta:resourcekey="locMinimumPasswordLength" Text="Minimum password length:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeMinimumPasswordLength" runat="server" ValidationGroup="EditMailbox"
|
<wsp:SizeBox id="sizeMinimumPasswordLength" runat="server" ValidationGroup="EditMailbox"
|
||||||
DisplayUnits="false" EmptyValue="0" />
|
DisplayUnits="false" EmptyValue="0" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="false"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -154,7 +154,7 @@
|
||||||
<asp:Localize ID="locTimeReenter" runat="server"
|
<asp:Localize ID="locTimeReenter" runat="server"
|
||||||
meta:resourcekey="locTimeReenter" Text="Time without user input before password must be re-entered:"></asp:Localize></td>
|
meta:resourcekey="locTimeReenter" Text="Time without user input before password must be re-entered:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeTimeReenter" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" />
|
<wsp:SizeBox id="sizeTimeReenter" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="false"/>
|
||||||
<asp:Localize ID="locMinutes" runat="server"
|
<asp:Localize ID="locMinutes" runat="server"
|
||||||
meta:resourcekey="locMinutes" Text="minutes"></asp:Localize>
|
meta:resourcekey="locMinutes" Text="minutes"></asp:Localize>
|
||||||
</td>
|
</td>
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
<asp:Localize ID="locPasswordExpiration" runat="server"
|
<asp:Localize ID="locPasswordExpiration" runat="server"
|
||||||
meta:resourcekey="locPasswordExpiration" Text="Password expiration:"></asp:Localize></td>
|
meta:resourcekey="locPasswordExpiration" Text="Password expiration:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizePasswordExpiration" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" />
|
<wsp:SizeBox id="sizePasswordExpiration" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="false"/>
|
||||||
<asp:Localize ID="locDays" runat="server"
|
<asp:Localize ID="locDays" runat="server"
|
||||||
meta:resourcekey="locDays" Text="days"></asp:Localize>
|
meta:resourcekey="locDays" Text="days"></asp:Localize>
|
||||||
</td>
|
</td>
|
||||||
|
@ -174,7 +174,7 @@
|
||||||
<asp:Localize ID="locPasswordHistory" runat="server"
|
<asp:Localize ID="locPasswordHistory" runat="server"
|
||||||
meta:resourcekey="locPasswordHistory" Text="Enforce password history:"></asp:Localize></td>
|
meta:resourcekey="locPasswordHistory" Text="Enforce password history:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizePasswordHistory" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" RequireValidatorEnabled="true" />
|
<wsp:SizeBox id="sizePasswordHistory" runat="server" ValidationGroup="EditMailbox" DisplayUnits="false" RequireValidatorEnabled="true" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="false"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
@ -39,6 +40,9 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
BindPolicy();
|
BindPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnSave_Click(object sender, EventArgs e)
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.832
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -11,12 +10,6 @@
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ExchangeActiveSyncSettings class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated class.
|
|
||||||
/// </remarks>
|
|
||||||
public partial class ExchangeActiveSyncSettings {
|
public partial class ExchangeActiveSyncSettings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -26,12 +26,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locDomainName" runat="server" meta:resourcekey="locDomainName" Text="Domain Name:"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locDomainName" runat="server" meta:resourcekey="locDomainName" Text="Domain Name:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtDomainName" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
<asp:DropDownList id="ddlDomains" runat="server" CssClass="NormalTextBox" DataTextField="DomainName" DataValueField="DomainID" style="vertical-align:middle;"></asp:DropDownList>
|
||||||
<asp:RequiredFieldValidator ID="valRequireDomainName" runat="server" meta:resourcekey="valRequireDomainName" ControlToValidate="txtDomainName"
|
|
||||||
ErrorMessage="Enter Domain Name" ValidationGroup="CreateDomain" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
|
||||||
<asp:RegularExpressionValidator id="valRequireCorrectDomain" 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='Please, enter correct domain name in the form "mydomain.com" or "sub.mydomain.com"' ControlToValidate="txtDomainName"
|
|
||||||
Display="Dynamic" meta:resourcekey="valRequireCorrectDomain" ValidationGroup="CreateDomain">*</asp:RegularExpressionValidator>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -39,6 +34,7 @@
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button id="btnAdd" runat="server" Text="Add Domain" CssClass="Button1" meta:resourcekey="btnAdd" ValidationGroup="CreateDomain" OnClick="btnAdd_Click" OnClientClick="ShowProgressDialog('Creating Domain...');"></asp:Button>
|
<asp:Button id="btnAdd" runat="server" Text="Add Domain" CssClass="Button1" meta:resourcekey="btnAdd" ValidationGroup="CreateDomain" OnClick="btnAdd_Click" OnClientClick="ShowProgressDialog('Creating Domain...');"></asp:Button>
|
||||||
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="CreateDomain" />
|
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="CreateDomain" />
|
||||||
|
<asp:Button id="btnCancel" runat="server" Text="Cancel" CssClass="Button1" meta:resourcekey="btnCancel" OnClick="btnCancel_Click"></asp:Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
@ -34,6 +36,31 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
DomainInfo[] domains = ES.Services.Servers.GetMyDomains(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
OrganizationDomainName[] list = ES.Services.Organizations.GetOrganizationDomains(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
foreach (DomainInfo d in domains)
|
||||||
|
{
|
||||||
|
if (!d.IsDomainPointer & !d.IsInstantAlias)
|
||||||
|
{
|
||||||
|
bool bAdd = true;
|
||||||
|
foreach (OrganizationDomainName acceptedDomain in list)
|
||||||
|
{
|
||||||
|
if (d.DomainName.ToLower() == acceptedDomain.DomainName.ToLower())
|
||||||
|
{
|
||||||
|
bAdd = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (bAdd) ddlDomains.Items.Add(d.DomainName.ToLower());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ddlDomains.Items.Count == 0) btnAdd.Enabled = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,6 +69,13 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
AddDomain();
|
AddDomain();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "domains", "SpaceID=" + PanelSecurity.PackageId));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void AddDomain()
|
private void AddDomain()
|
||||||
{
|
{
|
||||||
if (!Page.IsValid)
|
if (!Page.IsValid)
|
||||||
|
@ -51,7 +85,7 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
|
||||||
int result = ES.Services.Organizations.AddOrganizationDomain(PanelRequest.ItemID,
|
int result = ES.Services.Organizations.AddOrganizationDomain(PanelRequest.ItemID,
|
||||||
txtDomainName.Text.Trim());
|
ddlDomains.SelectedValue.Trim());
|
||||||
|
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,31 +76,13 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
protected global::System.Web.UI.WebControls.Localize locDomainName;
|
protected global::System.Web.UI.WebControls.Localize locDomainName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtDomainName control.
|
/// ddlDomains control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtDomainName;
|
protected global::System.Web.UI.WebControls.DropDownList ddlDomains;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// valRequireDomainName 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 valRequireDomainName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// valRequireCorrectDomain 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 valRequireCorrectDomain;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAdd control.
|
/// btnAdd control.
|
||||||
|
@ -120,6 +102,15 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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 btnCancel;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// FormComments control.
|
/// FormComments control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ExchangeMailboxAdvancedSettings.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.ExchangeMailboxAdvancedSettings" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ExchangeAddMailboxPlan.ascx.cs" Inherits="WebsitePanel.Portal.ExchangeServer.ExchangeAddMailboxPlan" %>
|
||||||
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/MailboxTabs.ascx" TagName="MailboxTabs" TagPrefix="wsp" %>
|
|
||||||
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/DaysBox.ascx" TagName="DaysBox" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/DaysBox.ascx" TagName="DaysBox" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
||||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
|
||||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
|
||||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
@ -16,20 +15,36 @@
|
||||||
<wsp:Breadcrumb id="breadcrumb" runat="server" PageName="Text.PageName" />
|
<wsp:Breadcrumb id="breadcrumb" runat="server" PageName="Text.PageName" />
|
||||||
</div>
|
</div>
|
||||||
<div class="Left">
|
<div class="Left">
|
||||||
<wsp:Menu id="menu" runat="server" SelectedItem="mailboxes" />
|
<wsp:Menu id="menu" runat="server" SelectedItem="mailboxplans" />
|
||||||
</div>
|
</div>
|
||||||
<div class="Content">
|
<div class="Content">
|
||||||
<div class="Center">
|
<div class="Center">
|
||||||
<div class="Title">
|
<div class="Title">
|
||||||
<asp:Image ID="Image1" SkinID="ExchangeMailbox48" runat="server" />
|
<asp:Image ID="Image1" SkinID="ExchangeDomainNameAdd48" runat="server" />
|
||||||
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Edit Mailbox"></asp:Localize>
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Add Mailboxplan"></asp:Localize>
|
||||||
-
|
|
||||||
<asp:Literal ID="litDisplayName" runat="server" Text="John Smith" />
|
|
||||||
</div>
|
</div>
|
||||||
<div class="FormBody">
|
<div class="FormBody">
|
||||||
<wsp:MailboxTabs id="tabs" runat="server" SelectedTab="mailbox_advanced" />
|
|
||||||
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secMailboxPlan" runat="server"
|
||||||
|
TargetControlID="MailboxPlan" meta:resourcekey="secMailboxPlan" Text="Mailboxplan">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="MailboxPlan" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right">
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="txtMailboxPlan" runat="server" CssClass="TextBox200" ></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="valRequireMailboxPlan" runat="server" meta:resourcekey="valRequireMailboxPlan" ControlToValidate="txtMailboxPlan"
|
||||||
|
ErrorMessage="Enter mailbox plan name" ValidationGroup="CreateMailboxPlan" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secMailboxFeatures" runat="server"
|
<wsp:CollapsiblePanel id="secMailboxFeatures" runat="server"
|
||||||
TargetControlID="MailboxFeatures" meta:resourcekey="secMailboxFeatures" Text="Mailbox Features">
|
TargetControlID="MailboxFeatures" meta:resourcekey="secMailboxFeatures" Text="Mailbox Features">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
|
@ -64,65 +79,69 @@
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secMailboxGeneral" runat="server"
|
||||||
<wsp:CollapsiblePanel id="secStatistics" runat="server"
|
TargetControlID="MailboxGeneral" meta:resourcekey="secMailboxGeneral" Text="Mailbox General">
|
||||||
TargetControlID="Statistics" meta:resourcekey="secStatistics" Text="Storage Statistics">
|
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
<asp:Panel ID="Statistics" runat="server" Height="0" style="overflow:hidden;">
|
<asp:Panel ID="MailboxGeneral" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<table cellpadding="4">
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locTotalItems" runat="server" meta:resourcekey="locTotalItems" Text="Total Items:"></asp:Localize></td>
|
|
||||||
<td>
|
<td>
|
||||||
<asp:Label ID="lblTotalItems" runat="server" CssClass="NormalBold">177</asp:Label>
|
<asp:CheckBox ID="chkHideFromAddressBook" runat="server" meta:resourcekey="chkHideFromAddressBook" Text="Hide from Addressbook"></asp:CheckBox>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="FormLabel150"><asp:Localize ID="locTotalSize" runat="server" meta:resourcekey="locTotalSize" Text="Total Size (MB):"></asp:Localize></td>
|
|
||||||
<td>
|
|
||||||
<asp:Label ID="lblTotalSize" runat="server" CssClass="NormalBold">16</asp:Label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="FormLabel150"><asp:Localize ID="locLastLogon" runat="server" meta:resourcekey="locLastLogon" Text="Last Logon:"></asp:Localize></td>
|
|
||||||
<td>
|
|
||||||
<asp:Label ID="lblLastLogon" runat="server" CssClass="NormalBold"></asp:Label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="FormLabel150"><asp:Localize ID="locLastLogoff" runat="server" meta:resourcekey="locLastLogoff" Text="Last Logoff:"></asp:Localize></td>
|
|
||||||
<td>
|
|
||||||
<asp:Label ID="lblLastLogoff" runat="server" CssClass="NormalBold"></asp:Label>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secStorageQuotas" runat="server"
|
<wsp:CollapsiblePanel id="secStorageQuotas" runat="server"
|
||||||
TargetControlID="StorageQuotas" meta:resourcekey="secStorageQuotas" Text="Storage Quotas">
|
TargetControlID="StorageQuotas" meta:resourcekey="secStorageQuotas" Text="Storage Quotas">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
<asp:Panel ID="StorageQuotas" runat="server" Height="0" style="overflow:hidden;">
|
<asp:Panel ID="StorageQuotas" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<table>
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMailboxSize" runat="server" meta:resourcekey="locMailboxSize" Text="Mailbox size:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SizeBox id="mailboxSize" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="false" DisplayUnitsMB="true" DisplayUnitsPct="false" RequireValidatorEnabled="true"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxRecipients" runat="server" meta:resourcekey="locMaxRecipients" Text="Maximum Recipients:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SizeBox id="maxRecipients" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="false" RequireValidatorEnabled="true"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxSendMessageSizeKB" runat="server" meta:resourcekey="locMaxSendMessageSizeKB" Text="Maximum Send Message Size (Kb):"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SizeBox id="maxSendMessageSizeKB" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="true" DisplayUnitsMB="false" DisplayUnitsPct="false" RequireValidatorEnabled="true"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxReceiveMessageSizeKB" runat="server" meta:resourcekey="locMaxReceiveMessageSizeKB" Text="Maximum Receive Message Size (Kb):"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<wsp:SizeBox id="maxReceiveMessageSizeKB" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="true" DisplayUnitsMB="false" DisplayUnitsPct="false" RequireValidatorEnabled="true"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" colspan="2"><asp:Localize ID="locWhenSizeExceeds" runat="server" meta:resourcekey="locWhenSizeExceeds" Text="When the mailbox size exceeds the indicated amount:"></asp:Localize></td>
|
<td class="FormLabel200" colspan="2"><asp:Localize ID="locWhenSizeExceeds" runat="server" meta:resourcekey="locWhenSizeExceeds" Text="When the mailbox size exceeds the indicated amount:"></asp:Localize></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locIssueWarning" runat="server" meta:resourcekey="locIssueWarning" Text="Issue warning at:"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locIssueWarning" runat="server" meta:resourcekey="locIssueWarning" Text="Issue warning at:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeIssueWarning" runat="server" ValidationGroup="EditMailbox" />
|
<wsp:SizeBox id="sizeIssueWarning" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="true" RequireValidatorEnabled="true"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locProhibitSend" runat="server" meta:resourcekey="locProhibitSend" Text="Prohibit send at:"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locProhibitSend" runat="server" meta:resourcekey="locProhibitSend" Text="Prohibit send at:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeProhibitSend" runat="server" ValidationGroup="EditMailbox" />
|
<wsp:SizeBox id="sizeProhibitSend" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB="false" DisplayUnitsMB="false" DisplayUnitsPct="true" RequireValidatorEnabled="true"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locProhibitSendReceive" runat="server" meta:resourcekey="locProhibitSendReceive" Text="Prohibit send and receive at:"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locProhibitSendReceive" runat="server" meta:resourcekey="locProhibitSendReceive" Text="Prohibit send and receive at:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:SizeBox id="sizeProhibitSendReceive" runat="server" ValidationGroup="EditMailbox" />
|
<wsp:SizeBox id="sizeProhibitSendReceive" runat="server" ValidationGroup="CreateMailboxPlan" DisplayUnitsKB=false DisplayUnitsMB="false" DisplayUnitsPct="true" RequireValidatorEnabled="true"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -138,44 +157,17 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel200" align="right"><asp:Localize ID="locKeepDeletedItems" runat="server" meta:resourcekey="locKeepDeletedItems" Text="Keep deleted items for:"></asp:Localize></td>
|
<td class="FormLabel200" align="right"><asp:Localize ID="locKeepDeletedItems" runat="server" meta:resourcekey="locKeepDeletedItems" Text="Keep deleted items for:"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<wsp:DaysBox id="daysKeepDeletedItems" runat="server" ValidationGroup="EditMailbox" />
|
<wsp:DaysBox id="daysKeepDeletedItems" runat="server" ValidationGroup="CreateMailboxPlan" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secDomainUser" runat="server"
|
|
||||||
TargetControlID="DomainUser" meta:resourcekey="secDomainUser" Text="Domain User Name">
|
|
||||||
</wsp:CollapsiblePanel>
|
|
||||||
<asp:Panel ID="DomainUser" runat="server" Height="0" style="overflow:hidden;">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td class="FormLabel200" align="right">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<asp:TextBox ID="txtAccountName" runat="server" CssClass="TextBox200" ReadOnly="true" Text="Username"></asp:TextBox>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
|
||||||
|
|
||||||
<table style="width:100%;margin-top:10px;">
|
|
||||||
<tr>
|
|
||||||
<td align="center">
|
|
||||||
<asp:CheckBox ID="chkPmmAllowed" Visible="false" runat="server" meta:resourcekey="chkPmmAllowed" AutoPostBack="true"
|
|
||||||
Text="Allow these settings to be managed from Personal Mailbox Manager" OnCheckedChanged="chkPmmAllowed_CheckedChanged" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave" ValidationGroup="EditMailbox" OnClick="btnSave_Click"></asp:Button>
|
<asp:Button id="btnAdd" runat="server" Text="Add Mailboxplan" CssClass="Button1" meta:resourcekey="btnAdd" ValidationGroup="CreateMailboxPlan" OnClick="btnAdd_Click" OnClientClick="ShowProgressDialog('Creating Mailboxplan...');"></asp:Button>
|
||||||
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True"
|
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="CreateMailboxPlan" />
|
||||||
ShowSummary="False" ValidationGroup="EditMailbox" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -0,0 +1,192 @@
|
||||||
|
// Copyright (c) 2011, 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 WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
|
{
|
||||||
|
public partial class ExchangeAddMailboxPlan : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
if (PanelRequest.GetInt("MailboxPlanId") != 0)
|
||||||
|
{
|
||||||
|
Providers.HostedSolution.ExchangeMailboxPlan plan = ES.Services.ExchangeServer.GetExchangeMailboxPlan(PanelRequest.ItemID, PanelRequest.GetInt("MailboxPlanId"));
|
||||||
|
txtMailboxPlan.Text = plan.MailboxPlan;
|
||||||
|
mailboxSize.ValueKB = plan.MailboxSizeMB;
|
||||||
|
maxRecipients.ValueKB = plan.MaxRecipients;
|
||||||
|
maxSendMessageSizeKB.ValueKB = plan.MaxSendMessageSizeKB;
|
||||||
|
maxReceiveMessageSizeKB.ValueKB = plan.MaxReceiveMessageSizeKB;
|
||||||
|
chkPOP3.Checked = plan.EnablePOP;
|
||||||
|
chkIMAP.Checked = plan.EnableIMAP;
|
||||||
|
chkOWA.Checked = plan.EnableOWA;
|
||||||
|
chkMAPI.Checked = plan.EnableMAPI;
|
||||||
|
chkActiveSync.Checked = plan.EnableActiveSync;
|
||||||
|
sizeIssueWarning.ValueKB = plan.IssueWarningPct;
|
||||||
|
sizeProhibitSend.ValueKB = plan.ProhibitSendPct;
|
||||||
|
sizeProhibitSendReceive.ValueKB = plan.ProhibitSendReceivePct;
|
||||||
|
daysKeepDeletedItems.ValueDays = plan.KeepDeletedItemsDays;
|
||||||
|
chkHideFromAddressBook.Checked = plan.HideFromAddressBook;
|
||||||
|
|
||||||
|
/*
|
||||||
|
txtMailboxPlan.Enabled = false;
|
||||||
|
mailboxSize.Enabled = false;
|
||||||
|
maxRecipients.Enabled = false;
|
||||||
|
maxSendMessageSizeKB.Enabled = false;
|
||||||
|
maxReceiveMessageSizeKB.Enabled = false;
|
||||||
|
chkPOP3.Enabled = false;
|
||||||
|
chkIMAP.Enabled = false;
|
||||||
|
chkOWA.Enabled = false;
|
||||||
|
chkMAPI.Enabled = false;
|
||||||
|
chkActiveSync.Enabled = false;
|
||||||
|
sizeIssueWarning.Enabled = false;
|
||||||
|
sizeProhibitSend.Enabled = false;
|
||||||
|
sizeProhibitSendReceive.Enabled = false;
|
||||||
|
daysKeepDeletedItems.Enabled = false;
|
||||||
|
chkHideFromAddressBook.Enabled = false;
|
||||||
|
|
||||||
|
btnAdd.Enabled = false;
|
||||||
|
*/
|
||||||
|
|
||||||
|
locTitle.Text = plan.MailboxPlan;
|
||||||
|
this.DisableControls = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
if (cntx != null)
|
||||||
|
{
|
||||||
|
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
{
|
||||||
|
switch (quota.QuotaId)
|
||||||
|
{
|
||||||
|
case 365:
|
||||||
|
maxRecipients.ValueKB = quota.QuotaAllocatedValue;
|
||||||
|
break;
|
||||||
|
case 366:
|
||||||
|
maxSendMessageSizeKB.ValueKB = quota.QuotaAllocatedValue;
|
||||||
|
break;
|
||||||
|
case 367:
|
||||||
|
maxReceiveMessageSizeKB.ValueKB = quota.QuotaAllocatedValue;
|
||||||
|
break;
|
||||||
|
case 83:
|
||||||
|
chkPOP3.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
chkPOP3.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
break;
|
||||||
|
case 84:
|
||||||
|
chkIMAP.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
chkIMAP.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
break;
|
||||||
|
case 85:
|
||||||
|
chkOWA.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
chkOWA.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
break;
|
||||||
|
case 86:
|
||||||
|
chkMAPI.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
chkMAPI.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
break;
|
||||||
|
case 87:
|
||||||
|
chkActiveSync.Checked = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
chkActiveSync.Enabled = Convert.ToBoolean(quota.QuotaAllocatedValue);
|
||||||
|
break;
|
||||||
|
case 364:
|
||||||
|
daysKeepDeletedItems.ValueDays = quota.QuotaAllocatedValue;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
sizeIssueWarning.ValueKB = 100;
|
||||||
|
sizeProhibitSend.ValueKB = 100;
|
||||||
|
sizeProhibitSendReceive.ValueKB = 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
this.DisableControls = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AddMailboxPlan();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddMailboxPlan()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Providers.HostedSolution.ExchangeMailboxPlan plan = new Providers.HostedSolution.ExchangeMailboxPlan();
|
||||||
|
plan.MailboxPlan = txtMailboxPlan.Text;
|
||||||
|
plan.MailboxSizeMB = mailboxSize.ValueKB;
|
||||||
|
if ((plan.MailboxSizeMB == 0)) plan.MailboxSizeMB = 1;
|
||||||
|
|
||||||
|
plan.IsDefault = false;
|
||||||
|
plan.MaxRecipients = maxRecipients.ValueKB;
|
||||||
|
plan.MaxSendMessageSizeKB = maxSendMessageSizeKB.ValueKB;
|
||||||
|
plan.MaxReceiveMessageSizeKB = maxReceiveMessageSizeKB.ValueKB;
|
||||||
|
plan.EnablePOP = chkPOP3.Checked;
|
||||||
|
plan.EnableIMAP = chkIMAP.Checked;
|
||||||
|
plan.EnableOWA = chkOWA.Checked;
|
||||||
|
plan.EnableMAPI = chkMAPI.Checked;
|
||||||
|
plan.EnableActiveSync = chkActiveSync.Checked;
|
||||||
|
plan.IssueWarningPct = sizeIssueWarning.ValueKB;
|
||||||
|
if ((plan.IssueWarningPct == 0)) plan.IssueWarningPct = 100;
|
||||||
|
plan.ProhibitSendPct = sizeProhibitSend.ValueKB;
|
||||||
|
if ((plan.ProhibitSendPct == 0)) plan.ProhibitSendPct = 100;
|
||||||
|
plan.ProhibitSendReceivePct = sizeProhibitSendReceive.ValueKB;
|
||||||
|
if ((plan.ProhibitSendReceivePct == 0)) plan.ProhibitSendReceivePct = 100;
|
||||||
|
plan.KeepDeletedItemsDays = daysKeepDeletedItems.ValueDays;
|
||||||
|
plan.HideFromAddressBook = chkHideFromAddressBook.Checked;
|
||||||
|
|
||||||
|
int result = ES.Services.ExchangeServer.AddExchangeMailboxPlan(PanelRequest.ItemID,
|
||||||
|
plan);
|
||||||
|
|
||||||
|
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "mailboxplans",
|
||||||
|
"SpaceID=" + PanelSecurity.PackageId));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("EXCHANGE_ADD_MAILBOXPLAN", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.1433
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -11,7 +10,7 @@
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
public partial class ExchangeMailboxAdvancedSettings {
|
public partial class ExchangeAddMailboxPlan {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// asyncTasks control.
|
/// asyncTasks control.
|
||||||
|
@ -58,24 +57,6 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize locTitle;
|
protected global::System.Web.UI.WebControls.Localize locTitle;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// litDisplayName 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 litDisplayName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// tabs control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.MailboxTabs tabs;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// messageBox control.
|
/// messageBox control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -85,6 +66,42 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secMailboxPlan control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secMailboxPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MailboxPlan 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 MailboxPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtMailboxPlan 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 txtMailboxPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireMailboxPlan 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 valRequireMailboxPlan;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secMailboxFeatures control.
|
/// secMailboxFeatures control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -149,94 +166,31 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkActiveSync;
|
protected global::System.Web.UI.WebControls.CheckBox chkActiveSync;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secStatistics control.
|
/// secMailboxGeneral control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.CollapsiblePanel secStatistics;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secMailboxGeneral;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Statistics control.
|
/// MailboxGeneral control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Panel Statistics;
|
protected global::System.Web.UI.WebControls.Panel MailboxGeneral;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locTotalItems control.
|
/// chkHideFromAddressBook control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize locTotalItems;
|
protected global::System.Web.UI.WebControls.CheckBox chkHideFromAddressBook;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// lblTotalItems 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 lblTotalItems;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// locTotalSize 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 locTotalSize;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// lblTotalSize 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 lblTotalSize;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// locLastLogon 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 locLastLogon;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// lblLastLogon 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 lblLastLogon;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// locLastLogoff 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 locLastLogoff;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// lblLastLogoff 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 lblLastLogoff;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secStorageQuotas control.
|
/// secStorageQuotas control.
|
||||||
|
@ -256,6 +210,78 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Panel StorageQuotas;
|
protected global::System.Web.UI.WebControls.Panel StorageQuotas;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMailboxSize 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 locMailboxSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mailboxSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox mailboxSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMaxRecipients 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 locMaxRecipients;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxRecipients control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox maxRecipients;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMaxSendMessageSizeKB 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 locMaxSendMessageSizeKB;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxSendMessageSizeKB control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox maxSendMessageSizeKB;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMaxReceiveMessageSizeKB 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 locMaxReceiveMessageSizeKB;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxReceiveMessageSizeKB control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.SizeBox maxReceiveMessageSizeKB;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locWhenSizeExceeds control.
|
/// locWhenSizeExceeds control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -356,49 +382,13 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DaysBox daysKeepDeletedItems;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secDomainUser control.
|
/// btnAdd control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.CollapsiblePanel secDomainUser;
|
protected global::System.Web.UI.WebControls.Button btnAdd;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// DomainUser 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 DomainUser;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// txtAccountName 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 txtAccountName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// chkPmmAllowed 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 chkPmmAllowed;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// btnSave 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 btnSave;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ValidationSummary1 control.
|
/// ValidationSummary1 control.
|
|
@ -30,6 +30,7 @@ using System;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using Microsoft.Security.Application;
|
using Microsoft.Security.Application;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
@ -42,6 +43,8 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
BindMapiRichTextFormat();
|
BindMapiRichTextFormat();
|
||||||
BindSettings();
|
BindSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindMapiRichTextFormat()
|
private void BindMapiRichTextFormat()
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.1433
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -11,12 +10,6 @@
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ExchangeContactGeneralSettings class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated class.
|
|
||||||
/// </remarks>
|
|
||||||
public partial class ExchangeContactGeneralSettings {
|
public partial class ExchangeContactGeneralSettings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -38,6 +38,7 @@ using System.Web.UI.WebControls.WebParts;
|
||||||
using System.Web.UI.HtmlControls;
|
using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
@ -49,6 +50,8 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
BindSettings();
|
BindSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindSettings()
|
private void BindSettings()
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.312
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -11,12 +10,6 @@
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ExchangeContactMailFlowSettings class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated class.
|
|
||||||
/// </remarks>
|
|
||||||
public partial class ExchangeContactMailFlowSettings {
|
public partial class ExchangeContactMailFlowSettings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -32,13 +32,6 @@
|
||||||
<div class="FormButtonsBarCleanRight">
|
<div class="FormButtonsBarCleanRight">
|
||||||
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||||
<asp:Localize ID="locSearch" runat="server" meta:resourcekey="locSearch" Visible="false"></asp:Localize>
|
<asp:Localize ID="locSearch" runat="server" meta:resourcekey="locSearch" Visible="false"></asp:Localize>
|
||||||
<asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="True"
|
|
||||||
onselectedindexchanged="ddlPageSize_SelectedIndexChanged">
|
|
||||||
<asp:ListItem>10</asp:ListItem>
|
|
||||||
<asp:ListItem Selected="True">20</asp:ListItem>
|
|
||||||
<asp:ListItem>50</asp:ListItem>
|
|
||||||
<asp:ListItem>100</asp:ListItem>
|
|
||||||
</asp:DropDownList>
|
|
||||||
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||||
|
@ -51,7 +44,7 @@
|
||||||
<asp:GridView ID="gvContacts" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
<asp:GridView ID="gvContacts" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||||
Width="100%" EmptyDataText="gvContacts" CssSelectorClass="NormalGridView"
|
Width="100%" EmptyDataText="gvContacts" CssSelectorClass="NormalGridView"
|
||||||
OnRowCommand="gvContacts_RowCommand" AllowPaging="True" AllowSorting="True"
|
OnRowCommand="gvContacts_RowCommand" AllowPaging="True" AllowSorting="True"
|
||||||
DataSourceID="odsAccountsPaged" PageSize="20">
|
DataSourceID="odsAccountsPaged">
|
||||||
<Columns>
|
<Columns>
|
||||||
<asp:TemplateField HeaderText="gvContactsDisplayName" SortExpression="DisplayName">
|
<asp:TemplateField HeaderText="gvContactsDisplayName" SortExpression="DisplayName">
|
||||||
<ItemStyle Width="50%"></ItemStyle>
|
<ItemStyle Width="50%"></ItemStyle>
|
||||||
|
|
|
@ -38,6 +38,7 @@ using System.Web.UI.WebControls.WebParts;
|
||||||
using System.Web.UI.HtmlControls;
|
using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
@ -49,6 +50,8 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
BindStats();
|
BindStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindStats()
|
private void BindStats()
|
||||||
|
@ -109,17 +112,5 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
gvContacts.PageSize = Convert.ToInt16(ddlPageSize.SelectedValue);
|
|
||||||
|
|
||||||
// rebind grid
|
|
||||||
gvContacts.DataBind();
|
|
||||||
|
|
||||||
// bind stats
|
|
||||||
BindStats();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -93,15 +93,6 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize locSearch;
|
protected global::System.Web.UI.WebControls.Localize locSearch;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ddlPageSize 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 ddlPageSize;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ddlSearchColumn control.
|
/// ddlSearchColumn control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.42
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -10,22 +9,151 @@
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
public partial class ExchangeCreateContact {
|
public partial class ExchangeCreateContact {
|
||||||
protected WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
|
||||||
protected WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
/// <summary>
|
||||||
protected WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
/// asyncTasks control.
|
||||||
protected System.Web.UI.WebControls.Image Image1;
|
/// </summary>
|
||||||
protected System.Web.UI.WebControls.Localize locTitle;
|
/// <remarks>
|
||||||
protected WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
/// Auto-generated field.
|
||||||
protected System.Web.UI.WebControls.Localize locDisplayName;
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
protected System.Web.UI.WebControls.TextBox txtDisplayName;
|
/// </remarks>
|
||||||
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireDisplayName;
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
protected System.Web.UI.WebControls.Localize locEmail;
|
|
||||||
protected System.Web.UI.WebControls.TextBox txtEmail;
|
/// <summary>
|
||||||
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireAccount;
|
/// breadcrumb control.
|
||||||
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectEmail;
|
/// </summary>
|
||||||
protected System.Web.UI.WebControls.Button btnCreate;
|
/// <remarks>
|
||||||
protected System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
/// Auto-generated field.
|
||||||
protected System.Web.UI.WebControls.Localize FormComments;
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// menu control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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 locTitle;
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// locDisplayName 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 locDisplayName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtDisplayName 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 txtDisplayName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireDisplayName 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 valRequireDisplayName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locEmail 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 locEmail;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtEmail 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 txtEmail;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireAccount 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 valRequireAccount;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valCorrectEmail 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 valCorrectEmail;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCreate 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 btnCreate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ValidationSummary1 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 ValidationSummary1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FormComments control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize FormComments;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ using System.Web.UI;
|
||||||
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls;
|
||||||
using System.Web.UI.WebControls.WebParts;
|
using System.Web.UI.WebControls.WebParts;
|
||||||
using System.Web.UI.HtmlControls;
|
using System.Web.UI.HtmlControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.1873
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
|
||||||
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/MailboxPlanSelector.ascx" TagName="MailboxPlanSelector" TagPrefix="wsp" %>
|
||||||
|
|
||||||
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
|
||||||
|
|
||||||
|
@ -61,6 +62,14 @@
|
||||||
ErrorMessage="Enter Display Name" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
ErrorMessage="Enter Display Name" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Subscriber Number: *"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
||||||
|
ErrorMessage="Enter Subscriber Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locAccount" runat="server" meta:resourcekey="locAccount" Text="E-mail Address: *"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locAccount" runat="server" meta:resourcekey="locAccount" Text="E-mail Address: *"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -91,6 +100,7 @@
|
||||||
<td class="FormLabel150"><asp:Localize ID="Localize1" runat="server" meta:resourcekey="locDisplayName" Text="Display Name: *"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="Localize1" runat="server" meta:resourcekey="locDisplayName" Text="Display Name: *"></asp:Localize></td>
|
||||||
<td><uc1:UserSelector id="userSelector" runat="server"></uc1:UserSelector></td>
|
<td><uc1:UserSelector id="userSelector" runat="server"></uc1:UserSelector></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
|
@ -99,10 +109,11 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150">
|
<td class="FormLabel150">
|
||||||
<asp:CheckBox ID="chkSendInstructions" runat="server" meta:resourcekey="chkSendInstructions" Text="Send Setup Instructions" Checked="true" />
|
<asp:Localize ID="locMailboxplanName" runat="server" meta:resourcekey="locMailboxplanName" Text="Mailboxplan Name: *"></asp:Localize>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<wsp:MailboxPlanSelector ID="mailboxPlanSelector" runat="server" />
|
||||||
</td>
|
</td>
|
||||||
<td><wsp:EmailControl id="sendInstructionEmail" runat="server" RequiredEnabled="true" ValidationGroup="CreateMailbox"></wsp:EmailControl></td>
|
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
|
@ -68,11 +68,27 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
|
PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
|
||||||
if (package != null)
|
if (package != null)
|
||||||
{
|
{
|
||||||
UserInfo user = ES.Services.Users.GetUserById(package.UserId);
|
//UserInfo user = ES.Services.Users.GetUserById(package.UserId);
|
||||||
if (user != null)
|
//if (user != null)
|
||||||
sendInstructionEmail.Text = user.Email;
|
//sendInstructionEmail.Text = user.Email;
|
||||||
|
}
|
||||||
|
|
||||||
|
WebsitePanel.Providers.HostedSolution.ExchangeMailboxPlan[] plans = ES.Services.ExchangeServer.GetExchangeMailboxPlans(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
if (plans.Length == 0)
|
||||||
|
btnCreate.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||||
|
if (cntx.Quotas.ContainsKey(Quotas.EXCHANGE2007_ISCONSUMER))
|
||||||
|
{
|
||||||
|
if (cntx.Quotas[Quotas.EXCHANGE2007_ISCONSUMER].QuotaAllocatedValue != 1)
|
||||||
|
{
|
||||||
|
locSubscriberNumber.Visible = txtSubscriberNumber.Visible = valRequireSubscriberNumber.Enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnCreate_Click(object sender, EventArgs e)
|
protected void btnCreate_Click(object sender, EventArgs e)
|
||||||
|
@ -92,21 +108,25 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
string accountName = IsNewUser ? string.Empty : userSelector.GetAccount();
|
string accountName = IsNewUser ? string.Empty : userSelector.GetAccount();
|
||||||
|
|
||||||
ExchangeAccountType type = IsNewUser
|
ExchangeAccountType type = IsNewUser
|
||||||
? (ExchangeAccountType) Utils.ParseInt(rbMailboxType.SelectedValue, 1)
|
? (ExchangeAccountType)Utils.ParseInt(rbMailboxType.SelectedValue, 1)
|
||||||
: ExchangeAccountType.Mailbox;
|
: ExchangeAccountType.Mailbox;
|
||||||
|
|
||||||
string domain = IsNewUser ? email.DomainName : userSelector.GetPrimaryEmailAddress().Split('@')[1];
|
string domain = IsNewUser ? email.DomainName : userSelector.GetPrimaryEmailAddress().Split('@')[1];
|
||||||
|
|
||||||
int accountId = IsNewUser ? 0 : userSelector.GetAccountId();
|
int accountId = IsNewUser ? 0 : userSelector.GetAccountId();
|
||||||
|
|
||||||
|
string subscriberNumber = IsNewUser ? txtSubscriberNumber.Text.Trim() : userSelector.GetSubscriberNumber();
|
||||||
|
|
||||||
accountId = ES.Services.ExchangeServer.CreateMailbox(PanelRequest.ItemID, accountId, type,
|
accountId = ES.Services.ExchangeServer.CreateMailbox(PanelRequest.ItemID, accountId, type,
|
||||||
accountName,
|
accountName,
|
||||||
displayName,
|
displayName,
|
||||||
name,
|
name,
|
||||||
domain,
|
domain,
|
||||||
password.Password,
|
password.Password,
|
||||||
chkSendInstructions.Checked,
|
false,
|
||||||
sendInstructionEmail.Text);
|
"",
|
||||||
|
Convert.ToInt32(mailboxPlanSelector.MailboxPlanId),
|
||||||
|
subscriberNumber);
|
||||||
|
|
||||||
|
|
||||||
if (accountId < 0)
|
if (accountId < 0)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.1378
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -11,12 +10,6 @@
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ExchangeCreateMailbox class.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated class.
|
|
||||||
/// </remarks>
|
|
||||||
public partial class ExchangeCreateMailbox {
|
public partial class ExchangeCreateMailbox {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -145,6 +138,33 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireDisplayName;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireDisplayName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locSubscriberNumber 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 locSubscriberNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSubscriberNumber 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 txtSubscriberNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireSubscriberNumber 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 valRequireSubscriberNumber;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locAccount control.
|
/// locAccount control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -227,22 +247,22 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.UserSelector userSelector;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.UserSelector userSelector;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkSendInstructions control.
|
/// locMailboxplanName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkSendInstructions;
|
protected global::System.Web.UI.WebControls.Localize locMailboxplanName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// sendInstructionEmail control.
|
/// mailboxPlanSelector control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.UserControls.EmailControl sendInstructionEmail;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.MailboxPlanSelector mailboxPlanSelector;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnCreate control.
|
/// btnCreate control.
|
||||||
|
|
|
@ -7,12 +7,11 @@
|
||||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
function SelectAllCheckboxes(box)
|
function SelectAllCheckboxes(box) {
|
||||||
{
|
|
||||||
var state = box.checked;
|
var state = box.checked;
|
||||||
var elm = box.parentElement.parentElement.parentElement.parentElement.getElementsByTagName("INPUT");
|
var elm = box.parentElement.parentElement.parentElement.parentElement.getElementsByTagName("INPUT");
|
||||||
for(i = 0; i < elm.length; i++)
|
for (i = 0; i < elm.length; i++)
|
||||||
if(elm[i].type == "checkbox" && elm[i].id != box.id && elm[i].checked != state && !elm[i].disabled)
|
if (elm[i].type == "checkbox" && elm[i].id != box.id && elm[i].checked != state && !elm[i].disabled)
|
||||||
elm[i].checked = state;
|
elm[i].checked = state;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
// Copyright (c) 2011, Outercurve Foundation.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
@ -51,6 +51,7 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
BindEmails();
|
BindEmails();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindEmails()
|
private void BindEmails()
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:2.0.50727.42
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -10,25 +9,178 @@
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
|
||||||
|
|
||||||
public partial class ExchangeDistributionListEmailAddresses {
|
public partial class ExchangeDistributionListEmailAddresses {
|
||||||
protected WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
|
||||||
protected WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
/// <summary>
|
||||||
protected System.Web.UI.WebControls.Image Image1;
|
/// breadcrumb control.
|
||||||
protected System.Web.UI.WebControls.Localize locTitle;
|
/// </summary>
|
||||||
protected System.Web.UI.WebControls.Literal litDisplayName;
|
/// <remarks>
|
||||||
protected WebsitePanel.Portal.ExchangeServer.UserControls.DistributionListTabs tabs;
|
/// Auto-generated field.
|
||||||
protected WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
protected System.Web.UI.WebControls.Label lblAddEmail;
|
/// </remarks>
|
||||||
protected System.Web.UI.WebControls.Localize locAccount;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
||||||
protected WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress email;
|
|
||||||
protected System.Web.UI.WebControls.Button btnAddEmail;
|
/// <summary>
|
||||||
protected WebsitePanel.Portal.CollapsiblePanel secExistingAddresses;
|
/// menu control.
|
||||||
protected System.Web.UI.WebControls.Panel ExistingAddresses;
|
/// </summary>
|
||||||
protected System.Web.UI.WebControls.GridView gvEmails;
|
/// <remarks>
|
||||||
protected System.Web.UI.WebControls.Localize locTotal;
|
/// Auto-generated field.
|
||||||
protected System.Web.UI.WebControls.Label lblTotal;
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
protected System.Web.UI.WebControls.Button btnSetAsPrimary;
|
/// </remarks>
|
||||||
protected System.Web.UI.WebControls.Button btnDeleteAddresses;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
||||||
protected System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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 locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litDisplayName 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 litDisplayName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tabs control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.DistributionListTabs tabs;
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// lblAddEmail 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 lblAddEmail;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locAccount 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 locAccount;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// email control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.EmailAddress email;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAddEmail 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 btnAddEmail;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secExistingAddresses control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secExistingAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ExistingAddresses 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 ExistingAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvEmails 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 gvEmails;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTotal 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 locTotal;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTotal 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 lblTotal;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSetAsPrimary 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 btnSetAsPrimary;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDeleteAddresses 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 btnDeleteAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FormComments control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize FormComments;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using Microsoft.Security.Application;
|
using Microsoft.Security.Application;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer
|
namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
|
@ -50,6 +51,8 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
{
|
{
|
||||||
BindSettings();
|
BindSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindSettings()
|
private void BindSettings()
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue