merge commit
This commit is contained in:
commit
754d9127de
73 changed files with 6049 additions and 383 deletions
|
@ -1638,3 +1638,325 @@ BEGIN
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (422, 12, 26, N'Exchange2007.DisclaimersAllowed', N'Disclaimers Allowed', 1, 0, NULL, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (422, 12, 26, N'Exchange2007.DisclaimersAllowed', N'Disclaimers Allowed', 1, 0, NULL, NULL)
|
||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
-- Lync Enterprise Voice
|
||||||
|
|
||||||
|
IF NOT EXISTS(select 1 from sys.columns COLS INNER JOIN sys.objects OBJS ON OBJS.object_id=COLS.object_id and OBJS.type='U' AND OBJS.name='LyncUserPlans' AND COLS.name='TelephonyVoicePolicy')
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [dbo].[LyncUserPlans] ADD
|
||||||
|
|
||||||
|
[RemoteUserAccess] [bit] NOT NULL DEFAULT 0,
|
||||||
|
[PublicIMConnectivity] [bit] NOT NULL DEFAULT 0,
|
||||||
|
|
||||||
|
[AllowOrganizeMeetingsWithExternalAnonymous] [bit] NOT NULL DEFAULT 0,
|
||||||
|
|
||||||
|
[Telephony] [int] NULL,
|
||||||
|
|
||||||
|
[ServerURI] [nvarchar](300) NULL,
|
||||||
|
|
||||||
|
[ArchivePolicy] [nvarchar](300) NULL,
|
||||||
|
[TelephonyDialPlanPolicy] [nvarchar](300) NULL,
|
||||||
|
[TelephonyVoicePolicy] [nvarchar](300) NULL
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
Go
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP PROCEDURE GetLyncUserPlan;
|
||||||
|
|
||||||
|
DROP PROCEDURE AddLyncUserPlan;
|
||||||
|
|
||||||
|
DROP PROCEDURE UpdateLyncUserPlan;
|
||||||
|
|
||||||
|
DROP PROCEDURE DeleteLyncUserPlan;
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'DeleteLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[DeleteLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- delete lyncuserplan
|
||||||
|
DELETE FROM LyncUserPlans
|
||||||
|
WHERE LyncUserPlanId = @LyncUserPlanId
|
||||||
|
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'UpdateLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N' CREATE PROCEDURE [dbo].[UpdateLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int,
|
||||||
|
@LyncUserPlanName nvarchar(300),
|
||||||
|
@LyncUserPlanType int,
|
||||||
|
@IM bit,
|
||||||
|
@Mobility bit,
|
||||||
|
@MobilityEnableOutsideVoice bit,
|
||||||
|
@Federation bit,
|
||||||
|
@Conferencing bit,
|
||||||
|
@EnterpriseVoice bit,
|
||||||
|
@VoicePolicy int,
|
||||||
|
@IsDefault bit,
|
||||||
|
|
||||||
|
@RemoteUserAccess bit,
|
||||||
|
@PublicIMConnectivity bit,
|
||||||
|
|
||||||
|
@AllowOrganizeMeetingsWithExternalAnonymous bit,
|
||||||
|
|
||||||
|
@Telephony int,
|
||||||
|
|
||||||
|
@ServerURI nvarchar(300),
|
||||||
|
|
||||||
|
@ArchivePolicy nvarchar(300),
|
||||||
|
|
||||||
|
@TelephonyDialPlanPolicy nvarchar(300),
|
||||||
|
@TelephonyVoicePolicy nvarchar(300)
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
UPDATE LyncUserPlans SET
|
||||||
|
LyncUserPlanName = @LyncUserPlanName,
|
||||||
|
LyncUserPlanType = @LyncUserPlanType,
|
||||||
|
IM = @IM,
|
||||||
|
Mobility = @Mobility,
|
||||||
|
MobilityEnableOutsideVoice = @MobilityEnableOutsideVoice,
|
||||||
|
Federation = @Federation,
|
||||||
|
Conferencing =@Conferencing,
|
||||||
|
EnterpriseVoice = @EnterpriseVoice,
|
||||||
|
VoicePolicy = @VoicePolicy,
|
||||||
|
IsDefault = @IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess = @RemoteUserAccess,
|
||||||
|
PublicIMConnectivity = @PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous = @AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony = @Telephony,
|
||||||
|
|
||||||
|
ServerURI = @ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy = @ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy = @TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy = @TelephonyVoicePolicy
|
||||||
|
|
||||||
|
WHERE LyncUserPlanId = @LyncUserPlanId
|
||||||
|
|
||||||
|
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'AddLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[AddLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int OUTPUT,
|
||||||
|
@ItemID int,
|
||||||
|
@LyncUserPlanName nvarchar(300),
|
||||||
|
@LyncUserPlanType int,
|
||||||
|
@IM bit,
|
||||||
|
@Mobility bit,
|
||||||
|
@MobilityEnableOutsideVoice bit,
|
||||||
|
@Federation bit,
|
||||||
|
@Conferencing bit,
|
||||||
|
@EnterpriseVoice bit,
|
||||||
|
@VoicePolicy int,
|
||||||
|
@IsDefault bit,
|
||||||
|
|
||||||
|
@RemoteUserAccess bit,
|
||||||
|
@PublicIMConnectivity bit,
|
||||||
|
|
||||||
|
@AllowOrganizeMeetingsWithExternalAnonymous bit,
|
||||||
|
|
||||||
|
@Telephony int,
|
||||||
|
|
||||||
|
@ServerURI nvarchar(300),
|
||||||
|
|
||||||
|
@ArchivePolicy nvarchar(300),
|
||||||
|
@TelephonyDialPlanPolicy nvarchar(300),
|
||||||
|
@TelephonyVoicePolicy nvarchar(300)
|
||||||
|
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (((SELECT Count(*) FROM LyncUserPlans WHERE ItemId = @ItemID) = 0) AND (@LyncUserPlanType=0))
|
||||||
|
BEGIN
|
||||||
|
SET @IsDefault = 1
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
IF ((@IsDefault = 1) AND (@LyncUserPlanType=0))
|
||||||
|
BEGIN
|
||||||
|
UPDATE LyncUserPlans SET IsDefault = 0 WHERE ItemID = @ItemID
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO LyncUserPlans
|
||||||
|
(
|
||||||
|
ItemID,
|
||||||
|
LyncUserPlanName,
|
||||||
|
LyncUserPlanType,
|
||||||
|
IM,
|
||||||
|
Mobility,
|
||||||
|
MobilityEnableOutsideVoice,
|
||||||
|
Federation,
|
||||||
|
Conferencing,
|
||||||
|
EnterpriseVoice,
|
||||||
|
VoicePolicy,
|
||||||
|
IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess,
|
||||||
|
PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony,
|
||||||
|
|
||||||
|
ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy
|
||||||
|
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
@ItemID,
|
||||||
|
@LyncUserPlanName,
|
||||||
|
@LyncUserPlanType,
|
||||||
|
@IM,
|
||||||
|
@Mobility,
|
||||||
|
@MobilityEnableOutsideVoice,
|
||||||
|
@Federation,
|
||||||
|
@Conferencing,
|
||||||
|
@EnterpriseVoice,
|
||||||
|
@VoicePolicy,
|
||||||
|
@IsDefault,
|
||||||
|
|
||||||
|
@RemoteUserAccess,
|
||||||
|
@PublicIMConnectivity,
|
||||||
|
|
||||||
|
@AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
@Telephony,
|
||||||
|
|
||||||
|
@ServerURI,
|
||||||
|
|
||||||
|
@ArchivePolicy,
|
||||||
|
@TelephonyDialPlanPolicy,
|
||||||
|
@TelephonyVoicePolicy
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
SET @LyncUserPlanId = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'GetLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[GetLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
LyncUserPlanId,
|
||||||
|
ItemID,
|
||||||
|
LyncUserPlanName,
|
||||||
|
LyncUserPlanType,
|
||||||
|
IM,
|
||||||
|
Mobility,
|
||||||
|
MobilityEnableOutsideVoice,
|
||||||
|
Federation,
|
||||||
|
Conferencing,
|
||||||
|
EnterpriseVoice,
|
||||||
|
VoicePolicy,
|
||||||
|
IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess,
|
||||||
|
PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony,
|
||||||
|
|
||||||
|
ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy
|
||||||
|
|
||||||
|
FROM
|
||||||
|
LyncUserPlans
|
||||||
|
WHERE
|
||||||
|
LyncUserPlanId = @LyncUserPlanId
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
LyncUserPlanId,
|
||||||
|
ItemID,
|
||||||
|
LyncUserPlanName,
|
||||||
|
LyncUserPlanType,
|
||||||
|
IM,
|
||||||
|
Mobility,
|
||||||
|
MobilityEnableOutsideVoice,
|
||||||
|
Federation,
|
||||||
|
Conferencing,
|
||||||
|
EnterpriseVoice,
|
||||||
|
VoicePolicy,
|
||||||
|
IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess,
|
||||||
|
PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony,
|
||||||
|
|
||||||
|
ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy
|
||||||
|
|
||||||
|
FROM
|
||||||
|
LyncUserPlans
|
||||||
|
WHERE
|
||||||
|
LyncUserPlanId = @LyncUserPlanId
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
General = 1,
|
General = 1,
|
||||||
WebSites = 2,
|
WebSites = 2,
|
||||||
VpsExternalNetwork = 3,
|
VpsExternalNetwork = 3,
|
||||||
VpsManagementNetwork = 4
|
VpsManagementNetwork = 4,
|
||||||
|
PhoneNumbers = 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -913,6 +913,15 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetPolicyList", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string[] GetPolicyList(int itemId, LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("GetPolicyList", new object[] {
|
||||||
|
itemId, type, name});
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
base.CancelAsync(userState);
|
base.CancelAsync(userState);
|
||||||
|
|
|
@ -3710,7 +3710,20 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
||||||
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
||||||
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
||||||
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault)
|
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault),
|
||||||
|
|
||||||
|
new SqlParameter("@RemoteUserAccess", lyncUserPlan.RemoteUserAccess),
|
||||||
|
new SqlParameter("@PublicIMConnectivity", lyncUserPlan.PublicIMConnectivity),
|
||||||
|
|
||||||
|
new SqlParameter("@AllowOrganizeMeetingsWithExternalAnonymous", lyncUserPlan.AllowOrganizeMeetingsWithExternalAnonymous),
|
||||||
|
|
||||||
|
new SqlParameter("@Telephony", lyncUserPlan.Telephony),
|
||||||
|
|
||||||
|
new SqlParameter("@ServerURI", lyncUserPlan.ServerURI),
|
||||||
|
|
||||||
|
new SqlParameter("@ArchivePolicy", lyncUserPlan.ArchivePolicy),
|
||||||
|
new SqlParameter("@TelephonyDialPlanPolicy", lyncUserPlan.TelephonyDialPlanPolicy),
|
||||||
|
new SqlParameter("@TelephonyVoicePolicy", lyncUserPlan.TelephonyVoicePolicy)
|
||||||
);
|
);
|
||||||
|
|
||||||
return Convert.ToInt32(outParam.Value);
|
return Convert.ToInt32(outParam.Value);
|
||||||
|
@ -3733,7 +3746,20 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
||||||
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
||||||
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
||||||
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault)
|
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault),
|
||||||
|
|
||||||
|
new SqlParameter("@RemoteUserAccess", lyncUserPlan.RemoteUserAccess),
|
||||||
|
new SqlParameter("@PublicIMConnectivity", lyncUserPlan.PublicIMConnectivity),
|
||||||
|
|
||||||
|
new SqlParameter("@AllowOrganizeMeetingsWithExternalAnonymous", lyncUserPlan.AllowOrganizeMeetingsWithExternalAnonymous),
|
||||||
|
|
||||||
|
new SqlParameter("@Telephony", lyncUserPlan.Telephony),
|
||||||
|
|
||||||
|
new SqlParameter("@ServerURI", lyncUserPlan.ServerURI),
|
||||||
|
|
||||||
|
new SqlParameter("@ArchivePolicy", lyncUserPlan.ArchivePolicy),
|
||||||
|
new SqlParameter("@TelephonyDialPlanPolicy", lyncUserPlan.TelephonyDialPlanPolicy),
|
||||||
|
new SqlParameter("@TelephonyVoicePolicy", lyncUserPlan.TelephonyVoicePolicy)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,8 +53,11 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
|
|
||||||
List<string> resSettings = new List<string>(lyncSettings);
|
List<string> resSettings = new List<string>(lyncSettings);
|
||||||
|
|
||||||
|
if (organizationServiceId != -1)
|
||||||
|
{
|
||||||
ExtendLyncSettings(resSettings, "primarydomaincontroller", GetProviderProperty(organizationServiceId, "primarydomaincontroller"));
|
ExtendLyncSettings(resSettings, "primarydomaincontroller", GetProviderProperty(organizationServiceId, "primarydomaincontroller"));
|
||||||
ExtendLyncSettings(resSettings, "rootou", GetProviderProperty(organizationServiceId, "rootou"));
|
ExtendLyncSettings(resSettings, "rootou", GetProviderProperty(organizationServiceId, "rootou"));
|
||||||
|
}
|
||||||
ws.ServiceProviderSettingsSoapHeaderValue.Settings = resSettings.ToArray();
|
ws.ServiceProviderSettingsSoapHeaderValue.Settings = resSettings.ToArray();
|
||||||
return ws;
|
return ws;
|
||||||
}
|
}
|
||||||
|
@ -345,6 +348,13 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
{
|
{
|
||||||
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "SET_LYNC_USER_GENERAL_SETTINGS");
|
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "SET_LYNC_USER_GENERAL_SETTINGS");
|
||||||
|
|
||||||
|
string PIN = "";
|
||||||
|
|
||||||
|
string[] uriAndPin = ("" + lineUri).Split(':');
|
||||||
|
|
||||||
|
if (uriAndPin.Length > 0) lineUri = uriAndPin[0];
|
||||||
|
if (uriAndPin.Length > 1) PIN = uriAndPin[1];
|
||||||
|
|
||||||
LyncUser user = null;
|
LyncUser user = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -377,6 +387,8 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(sipAddress))
|
if (!string.IsNullOrEmpty(sipAddress))
|
||||||
|
{
|
||||||
|
if (user.SipAddress != sipAddress)
|
||||||
{
|
{
|
||||||
if (sipAddress != usr.UserPrincipalName)
|
if (sipAddress != usr.UserPrincipalName)
|
||||||
{
|
{
|
||||||
|
@ -386,12 +398,12 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
user.SipAddress = sipAddress;
|
user.SipAddress = sipAddress;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(lineUri)) user.LineUri = lineUri;
|
user.LineUri = lineUri;
|
||||||
|
user.PIN = PIN;
|
||||||
|
|
||||||
lync.SetLyncUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName, user);
|
lync.SetLyncUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName, user);
|
||||||
|
|
||||||
|
@ -1002,6 +1014,51 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public static string[] GetPolicyList(int itemId, LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
string[] ret = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (itemId == -1)
|
||||||
|
{
|
||||||
|
// policy list in all lync servers
|
||||||
|
List<string> allpolicylist = new List<string>();
|
||||||
|
List<ServerInfo> servers = ServerController.GetAllServers();
|
||||||
|
foreach (ServerInfo server in servers)
|
||||||
|
{
|
||||||
|
List<ServiceInfo> services = ServerController.GetServicesByServerIdGroupName(server.ServerId, ResourceGroups.Lync);
|
||||||
|
foreach (ServiceInfo service in services)
|
||||||
|
{
|
||||||
|
LyncServer lync = GetLyncServer(service.ServiceId, -1);
|
||||||
|
string[] values = lync.GetPolicyList(type, name);
|
||||||
|
foreach (string val in values)
|
||||||
|
if (allpolicylist.IndexOf(val) == -1)
|
||||||
|
allpolicylist.Add(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
ret = allpolicylist.ToArray();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||||
|
|
||||||
|
int lyncServiceId = GetLyncServiceID(org.PackageId);
|
||||||
|
LyncServer lync = GetLyncServer(lyncServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
ret = lync.GetPolicyList(type, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
#region Private methods
|
#region Private methods
|
||||||
public static UInt64 ConvertPhoneNumberToLong(string ip)
|
public static UInt64 ConvertPhoneNumberToLong(string ip)
|
||||||
|
|
|
@ -965,12 +965,32 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pool == IPAddressPool.PhoneNumbers)
|
||||||
|
{
|
||||||
|
string phoneFormat = "D" + Math.Max(externalIP.Length, endIP.Length);
|
||||||
|
|
||||||
|
UInt64 start = UInt64.Parse(externalIP);
|
||||||
|
UInt64 end = UInt64.Parse(endIP);
|
||||||
|
|
||||||
|
if (end < start) { UInt64 temp = start; start = end; end = temp; }
|
||||||
|
|
||||||
|
const UInt64 maxPhones = 1000; // TODO max?
|
||||||
|
|
||||||
|
end = Math.Min(end, start + maxPhones);
|
||||||
|
|
||||||
|
for (UInt64 number = start; number <= end; number++)
|
||||||
|
DataProvider.AddIPAddress((int)pool, serverId, number.ToString(phoneFormat), "", subnetMask, defaultGateway, comments);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
var startExternalIP = IPAddress.Parse(externalIP);
|
var startExternalIP = IPAddress.Parse(externalIP);
|
||||||
var startInternalIP = IPAddress.Parse(internalIP);
|
var startInternalIP = IPAddress.Parse(internalIP);
|
||||||
var endExternalIP = IPAddress.Parse(endIP);
|
var endExternalIP = IPAddress.Parse(endIP);
|
||||||
|
|
||||||
// handle CIDR notation IP/Subnet addresses
|
// handle CIDR notation IP/Subnet addresses
|
||||||
if (startExternalIP.IsSubnet && endExternalIP == null) {
|
if (startExternalIP.IsSubnet && endExternalIP == null)
|
||||||
|
{
|
||||||
endExternalIP = startExternalIP.LastSubnetIP;
|
endExternalIP = startExternalIP.LastSubnetIP;
|
||||||
startExternalIP = startExternalIP.FirstSubnetIP;
|
startExternalIP = startExternalIP.FirstSubnetIP;
|
||||||
}
|
}
|
||||||
|
@ -999,6 +1019,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
startInternalIP += step;
|
startInternalIP += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
TaskManager.CompleteResultTask(res, "IP_ADDRESS_ADD_RANGE_ERROR", ex);
|
TaskManager.CompleteResultTask(res, "IP_ADDRESS_ADD_RANGE_ERROR", ex);
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<section name="microsoft.web.services3" type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3" />
|
<section name="microsoft.web.services3" type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3"/>
|
||||||
</configSections>
|
</configSections>
|
||||||
<!-- Connection strings -->
|
<!-- Connection strings -->
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=sa;pwd=Password12" providerName="System.Data.SqlClient" />
|
<add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=sa;pwd=Password12" providerName="System.Data.SqlClient"/>
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<!-- Encryption util settings -->
|
<!-- Encryption util settings -->
|
||||||
<add key="WebsitePanel.CryptoKey" value="1234567890" />
|
<add key="WebsitePanel.CryptoKey" value="1234567890"/>
|
||||||
<!-- A1D4KDHUE83NKHddF -->
|
<!-- A1D4KDHUE83NKHddF -->
|
||||||
<add key="WebsitePanel.EncryptionEnabled" value="true" />
|
<add key="WebsitePanel.EncryptionEnabled" value="true"/>
|
||||||
<!-- Web Applications -->
|
<!-- Web Applications -->
|
||||||
<add key="WebsitePanel.EnterpriseServer.WebApplicationsPath" value="~/WebApplications" />
|
<add key="WebsitePanel.EnterpriseServer.WebApplicationsPath" value="~/WebApplications"/>
|
||||||
<!-- Communication settings -->
|
<!-- Communication settings -->
|
||||||
<!-- Maximum waiting time when sending request to the remote server
|
<!-- Maximum waiting time when sending request to the remote server
|
||||||
The value is in seconds. "-1" - infinite. -->
|
The value is in seconds. "-1" - infinite. -->
|
||||||
<add key="WebsitePanel.EnterpriseServer.ServerRequestTimeout" value="3600" />
|
<add key="WebsitePanel.EnterpriseServer.ServerRequestTimeout" value="3600"/>
|
||||||
<add key="WebsitePanel.AltConnectionString" value="ConnectionString" />
|
<add key="WebsitePanel.AltConnectionString" value="ConnectionString"/>
|
||||||
<add key="WebsitePanel.AltCryptoKey" value="CryptoKey" />
|
<add key="WebsitePanel.AltCryptoKey" value="CryptoKey"/>
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web>
|
<system.web>
|
||||||
<!-- Disable any authentication -->
|
<!-- Disable any authentication -->
|
||||||
<authentication mode="None" />
|
<authentication mode="None"/>
|
||||||
<!-- Correct HTTP runtime settings -->
|
<!-- Correct HTTP runtime settings -->
|
||||||
<httpRuntime executionTimeout="3600" maxRequestLength="16384" />
|
<httpRuntime executionTimeout="3600" maxRequestLength="16384"/>
|
||||||
<!-- Set globalization settings -->
|
<!-- Set globalization settings -->
|
||||||
<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />
|
<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8"/>
|
||||||
<!-- Web Services settings -->
|
<!-- Web Services settings -->
|
||||||
<webServices>
|
<webServices>
|
||||||
<protocols>
|
<protocols>
|
||||||
<remove name="HttpPost" />
|
<remove name="HttpPost"/>
|
||||||
<remove name="HttpPostLocalhost" />
|
<remove name="HttpPostLocalhost"/>
|
||||||
<remove name="HttpGet" />
|
<remove name="HttpGet"/>
|
||||||
</protocols>
|
</protocols>
|
||||||
<soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3" />
|
<soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3"/>
|
||||||
</webServices>
|
</webServices>
|
||||||
<compilation targetFramework="4.0" />
|
<compilation targetFramework="4.0" debug="true"/>
|
||||||
</system.web>
|
</system.web>
|
||||||
<!-- WSE 3.0 settings -->
|
<!-- WSE 3.0 settings -->
|
||||||
<microsoft.web.services3>
|
<microsoft.web.services3>
|
||||||
<diagnostics>
|
<diagnostics>
|
||||||
<trace enabled="false" input="InputTrace.webinfo" output="OutputTrace.webinfo" />
|
<trace enabled="false" input="InputTrace.webinfo" output="OutputTrace.webinfo"/>
|
||||||
</diagnostics>
|
</diagnostics>
|
||||||
<messaging>
|
<messaging>
|
||||||
<maxMessageLength value="-1" />
|
<maxMessageLength value="-1"/>
|
||||||
<mtom clientMode="On" />
|
<mtom clientMode="On"/>
|
||||||
</messaging>
|
</messaging>
|
||||||
<security>
|
<security>
|
||||||
<securityTokenManager>
|
<securityTokenManager>
|
||||||
<add type="WebsitePanel.EnterpriseServer.ServiceUsernameTokenManager, WebsitePanel.EnterpriseServer.Code" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" localName="UsernameToken" />
|
<add type="WebsitePanel.EnterpriseServer.ServiceUsernameTokenManager, WebsitePanel.EnterpriseServer.Code" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" localName="UsernameToken"/>
|
||||||
</securityTokenManager>
|
</securityTokenManager>
|
||||||
</security>
|
</security>
|
||||||
<policy fileName="WsePolicyCache.Config" />
|
<policy fileName="WsePolicyCache.Config"/>
|
||||||
</microsoft.web.services3>
|
</microsoft.web.services3>
|
||||||
</configuration>
|
</configuration>
|
|
@ -151,5 +151,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public string[] GetPolicyList(int itemId, LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
return LyncController.GetPolicyList(itemId, type, name);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -48,5 +48,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
bool RemoveFederationDomain(string organizationId, string domainName);
|
bool RemoveFederationDomain(string organizationId, string domainName);
|
||||||
|
|
||||||
void ReloadConfiguration();
|
void ReloadConfiguration();
|
||||||
|
|
||||||
|
string[] GetPolicyList(LyncPolicyType type, string name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
// 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 System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
{
|
||||||
|
public enum LyncPolicyType
|
||||||
|
{
|
||||||
|
Archiving = 0,
|
||||||
|
DialPlan = 1,
|
||||||
|
Voice = 2,
|
||||||
|
Pin = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -41,5 +41,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
public int AccountID { get; set; }
|
public int AccountID { get; set; }
|
||||||
public int LyncUserPlanId { get; set; }
|
public int LyncUserPlanId { get; set; }
|
||||||
public string LyncUserPlanName { get; set; }
|
public string LyncUserPlanName { get; set; }
|
||||||
|
|
||||||
|
public string PIN { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,6 +122,63 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { this.voicePolicy = value; }
|
set { this.voicePolicy = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool remoteUserAccess;
|
||||||
|
bool publicIMConnectivity;
|
||||||
|
|
||||||
|
bool allowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
int telephony;
|
||||||
|
|
||||||
|
string serverURI;
|
||||||
|
|
||||||
|
string archivePolicy;
|
||||||
|
string telephonyDialPlanPolicy;
|
||||||
|
string telephonyVoicePolicy;
|
||||||
|
|
||||||
|
public bool RemoteUserAccess
|
||||||
|
{
|
||||||
|
get { return this.remoteUserAccess; }
|
||||||
|
set { this.remoteUserAccess = value; }
|
||||||
|
}
|
||||||
|
public bool PublicIMConnectivity
|
||||||
|
{
|
||||||
|
get { return this.publicIMConnectivity; }
|
||||||
|
set { this.publicIMConnectivity = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AllowOrganizeMeetingsWithExternalAnonymous
|
||||||
|
{
|
||||||
|
get { return this.allowOrganizeMeetingsWithExternalAnonymous; }
|
||||||
|
set { this.allowOrganizeMeetingsWithExternalAnonymous = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Telephony
|
||||||
|
{
|
||||||
|
get { return this.telephony; }
|
||||||
|
set { this.telephony = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ServerURI
|
||||||
|
{
|
||||||
|
get { return this.serverURI; }
|
||||||
|
set { this.serverURI = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ArchivePolicy
|
||||||
|
{
|
||||||
|
get { return this.archivePolicy; }
|
||||||
|
set { this.archivePolicy = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TelephonyDialPlanPolicy
|
||||||
|
{
|
||||||
|
get { return this.telephonyDialPlanPolicy; }
|
||||||
|
set { this.telephonyDialPlanPolicy = value; }
|
||||||
|
}
|
||||||
|
public string TelephonyVoicePolicy
|
||||||
|
{
|
||||||
|
get { return this.telephonyVoicePolicy; }
|
||||||
|
set { this.telephonyVoicePolicy = value; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,7 @@
|
||||||
<Compile Include="HostedSolution\LyncErrorCodes.cs" />
|
<Compile Include="HostedSolution\LyncErrorCodes.cs" />
|
||||||
<Compile Include="HostedSolution\LyncFederationDomain.cs" />
|
<Compile Include="HostedSolution\LyncFederationDomain.cs" />
|
||||||
<Compile Include="HostedSolution\LyncOrganizationStatistics.cs" />
|
<Compile Include="HostedSolution\LyncOrganizationStatistics.cs" />
|
||||||
|
<Compile Include="HostedSolution\LyncPolicyType.cs" />
|
||||||
<Compile Include="HostedSolution\LyncTransaction.cs" />
|
<Compile Include="HostedSolution\LyncTransaction.cs" />
|
||||||
<Compile Include="HostedSolution\LyncUserStatistics.cs" />
|
<Compile Include="HostedSolution\LyncUserStatistics.cs" />
|
||||||
<Compile Include="HostedSolution\LyncStatisticsReport.cs" />
|
<Compile Include="HostedSolution\LyncStatisticsReport.cs" />
|
||||||
|
|
|
@ -269,7 +269,22 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
command.Parameters.Add("Identity", userUpn);
|
command.Parameters.Add("Identity", userUpn);
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
SetLyncUserPlanInternal(organizationId, userUpn, plan, runspace);
|
command = new Command("Update-CsAddressBook");
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
command = new Command("Update-CsUserDatabase");
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
int trySleep = 5000; int tryMaxCount = 10; bool PlanSet = false;
|
||||||
|
for (int tryCount = 0; (tryCount < tryMaxCount) && (!PlanSet); tryCount++ )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PlanSet = SetLyncUserPlanInternal(organizationId, userUpn, plan, runspace);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
if (!PlanSet) System.Threading.Thread.Sleep(trySleep);
|
||||||
|
}
|
||||||
|
|
||||||
command = new Command("Update-CsAddressBook");
|
command = new Command("Update-CsAddressBook");
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
command = new Command("Update-CsUserDatabase");
|
command = new Command("Update-CsUserDatabase");
|
||||||
|
@ -317,6 +332,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
lyncUser.LineUri = (string) GetPSObjectProperty(user, "LineURI");
|
lyncUser.LineUri = (string) GetPSObjectProperty(user, "LineURI");
|
||||||
|
|
||||||
lyncUser.SipAddress = lyncUser.SipAddress.ToLower().Replace("sip:", "");
|
lyncUser.SipAddress = lyncUser.SipAddress.ToLower().Replace("sip:", "");
|
||||||
|
lyncUser.LineUri = lyncUser.LineUri.ToLower().Replace("tel:+", "");
|
||||||
|
lyncUser.LineUri = lyncUser.LineUri.ToLower().Replace("tel:", "");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -404,13 +421,25 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
command.Parameters.Add("SipAddress", "SIP:" + lyncUser.SipAddress);
|
command.Parameters.Add("SipAddress", "SIP:" + lyncUser.SipAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(lyncUser.SipAddress))
|
if (!string.IsNullOrEmpty(lyncUser.LineUri))
|
||||||
{
|
{
|
||||||
command.Parameters.Add("LineUri", lyncUser.LineUri);
|
command.Parameters.Add("LineUri", "TEL:+" + lyncUser.LineUri);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
command.Parameters.Add("LineUri", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(lyncUser.PIN))
|
||||||
|
{
|
||||||
|
command = new Command("Set-CsClientPin");
|
||||||
|
command.Parameters.Add("Identity", userUpn);
|
||||||
|
command.Parameters.Add("Pin", lyncUser.PIN);
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
}
|
||||||
|
|
||||||
command = new Command("Update-CsAddressBook");
|
command = new Command("Update-CsAddressBook");
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
@ -454,7 +483,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
bCloseRunSpace = true;
|
bCloseRunSpace = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var command = new Command("Grant-CsExternalAccessPolicy");
|
// EnterpriseVoice
|
||||||
|
var command = new Command("Set-CsUser");
|
||||||
|
command.Parameters.Add("Identity", userUpn);
|
||||||
|
command.Parameters.Add("EnterpriseVoiceEnabled", plan.EnterpriseVoice);
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
command = new Command("Grant-CsExternalAccessPolicy");
|
||||||
command.Parameters.Add("Identity", userUpn);
|
command.Parameters.Add("Identity", userUpn);
|
||||||
command.Parameters.Add("PolicyName", plan.Federation ? organizationId : null);
|
command.Parameters.Add("PolicyName", plan.Federation ? organizationId : null);
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
@ -466,7 +501,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
command = new Command("Grant-CsMobilityPolicy");
|
command = new Command("Grant-CsMobilityPolicy");
|
||||||
command.Parameters.Add("Identity", userUpn);
|
command.Parameters.Add("Identity", userUpn);
|
||||||
|
|
||||||
if (plan.Mobility)
|
if (plan.Mobility)
|
||||||
{
|
{
|
||||||
command.Parameters.Add("PolicyName", plan.MobilityEnableOutsideVoice ? organizationId + " EnableOutSideVoice" : organizationId + " DisableOutSideVoice");
|
command.Parameters.Add("PolicyName", plan.MobilityEnableOutsideVoice ? organizationId + " EnableOutSideVoice" : organizationId + " DisableOutSideVoice");
|
||||||
|
@ -475,8 +509,26 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
command.Parameters.Add("PolicyName", null);
|
command.Parameters.Add("PolicyName", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
// ArchivePolicy
|
||||||
|
command = new Command("Grant-CsArchivingPolicy");
|
||||||
|
command.Parameters.Add("Identity", userUpn);
|
||||||
|
command.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.ArchivePolicy) ? null : plan.ArchivePolicy);
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
// DialPlan
|
||||||
|
command = new Command("Grant-CsDialPlan");
|
||||||
|
command.Parameters.Add("Identity", userUpn);
|
||||||
|
command.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.TelephonyDialPlanPolicy) ? null : plan.TelephonyDialPlanPolicy);
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
|
// VoicePolicy
|
||||||
|
command = new Command("Grant-CsVoicePolicy");
|
||||||
|
command.Parameters.Add("Identity", userUpn);
|
||||||
|
command.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.TelephonyVoicePolicy) ? null : plan.TelephonyVoicePolicy);
|
||||||
|
ExecuteShellCommand(runspace, command, false);
|
||||||
|
|
||||||
command = new Command("Update-CsUserDatabase");
|
command = new Command("Update-CsUserDatabase");
|
||||||
ExecuteShellCommand(runspace, command, false);
|
ExecuteShellCommand(runspace, command, false);
|
||||||
}
|
}
|
||||||
|
@ -744,6 +796,92 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Policy
|
||||||
|
|
||||||
|
internal override string[] GetPolicyListInternal(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
List<string> ret = new List<string>();
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case LyncPolicyType.Archiving:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsArchivingPolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.DialPlan:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsDialPlan");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string Description = "" + (string)GetPSObjectProperty(res, "Description");
|
||||||
|
if (Description.ToLower().IndexOf(name.ToLower()) == -1) continue;
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.Voice:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsVoicePolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string Description = "" + (string)GetPSObjectProperty(res, "Description");
|
||||||
|
if (Description.ToLower().IndexOf(name.ToLower()) == -1) continue;
|
||||||
|
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.Pin:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsPinPolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string str = "" + GetPSObjectProperty(res, name);
|
||||||
|
ret.Add(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -134,6 +134,11 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ReloadConfigurationInternal();
|
ReloadConfigurationInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
return GetPolicyListInternal(type, name);
|
||||||
|
}
|
||||||
|
|
||||||
public override bool IsInstalled()
|
public override bool IsInstalled()
|
||||||
{
|
{
|
||||||
bool bResult = false;
|
bool bResult = false;
|
||||||
|
@ -209,6 +214,11 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal virtual string[] GetPolicyListInternal(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
#region PowerShell integration
|
#region PowerShell integration
|
||||||
|
|
||||||
/// <summary> Opens runspace.</summary>
|
/// <summary> Opens runspace.</summary>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>WebsitePanel.Providers.HostedSolution.Lync2013</RootNamespace>
|
<RootNamespace>WebsitePanel.Providers.HostedSolution.Lync2013</RootNamespace>
|
||||||
<AssemblyName>WebsitePanel.Providers.HostedSolution.Lync2013</AssemblyName>
|
<AssemblyName>WebsitePanel.Providers.HostedSolution.Lync2013</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
|
|
@ -50,12 +50,22 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
Log.WriteEnd("{0} {1}", LogPrefix, text);
|
Log.WriteEnd("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void LogInfo(string message)
|
||||||
|
{
|
||||||
|
Log.WriteInfo("{0} {1}", LogPrefix, message);
|
||||||
|
}
|
||||||
|
|
||||||
public static void LogInfo(string message, params object[] args)
|
public static void LogInfo(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
Log.WriteInfo("{0} {1}", LogPrefix, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void LogWarning(string message)
|
||||||
|
{
|
||||||
|
Log.WriteWarning("{0} {1}", LogPrefix, message);
|
||||||
|
}
|
||||||
|
|
||||||
public static void LogWarning(string message, params object[] args)
|
public static void LogWarning(string message, params object[] args)
|
||||||
{
|
{
|
||||||
string text = String.Format(message, args);
|
string text = String.Format(message, args);
|
||||||
|
|
|
@ -163,6 +163,11 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ReloadConfigurationInternal();
|
ReloadConfigurationInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
return GetPolicyListInternal(type, name);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region organization
|
#region organization
|
||||||
|
@ -518,6 +523,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
lyncUser.LineUri = (string)GetPSObjectProperty(user, "LineURI");
|
lyncUser.LineUri = (string)GetPSObjectProperty(user, "LineURI");
|
||||||
|
|
||||||
lyncUser.SipAddress = lyncUser.SipAddress.ToLower().Replace("sip:", "");
|
lyncUser.SipAddress = lyncUser.SipAddress.ToLower().Replace("sip:", "");
|
||||||
|
lyncUser.LineUri = lyncUser.LineUri.ToLower().Replace("tel:+", "");
|
||||||
|
lyncUser.LineUri = lyncUser.LineUri.ToLower().Replace("tel:", "");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -611,11 +618,20 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
cmd = new Command("Set-CsUser");
|
cmd = new Command("Set-CsUser");
|
||||||
cmd.Parameters.Add("Identity", userUpn);
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
if (!string.IsNullOrEmpty(lyncUser.SipAddress)) cmd.Parameters.Add("SipAddress", "SIP:"+lyncUser.SipAddress);
|
if (!string.IsNullOrEmpty(lyncUser.SipAddress)) cmd.Parameters.Add("SipAddress", "SIP:" + lyncUser.SipAddress);
|
||||||
if (!string.IsNullOrEmpty(lyncUser.SipAddress)) cmd.Parameters.Add("LineUri", lyncUser.LineUri);
|
if (!string.IsNullOrEmpty(lyncUser.LineUri)) cmd.Parameters.Add("LineUri", "TEL:+" + lyncUser.LineUri);
|
||||||
|
else cmd.Parameters.Add("LineUri", null);
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(lyncUser.PIN))
|
||||||
|
{
|
||||||
|
cmd = new Command("Set-CsClientPin");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("Pin", lyncUser.PIN);
|
||||||
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//initiate addressbook generation
|
//initiate addressbook generation
|
||||||
cmd = new Command("Update-CsAddressBook");
|
cmd = new Command("Update-CsAddressBook");
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
@ -657,8 +673,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
bCloseRunSpace = true;
|
bCloseRunSpace = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EnterpriseVoice
|
||||||
|
Command cmd = new Command("Set-CsUser");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("EnterpriseVoiceEnabled", plan.EnterpriseVoice);
|
||||||
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
|
||||||
//CsExternalAccessPolicy
|
//CsExternalAccessPolicy
|
||||||
Command cmd = new Command("Grant-CsExternalAccessPolicy");
|
cmd = new Command("Grant-CsExternalAccessPolicy");
|
||||||
cmd.Parameters.Add("Identity", userUpn);
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
cmd.Parameters.Add("PolicyName", plan.Federation ? organizationId : null);
|
cmd.Parameters.Add("PolicyName", plan.Federation ? organizationId : null);
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
@ -678,6 +700,24 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("PolicyName", null);
|
cmd.Parameters.Add("PolicyName", null);
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
// ArchivePolicy
|
||||||
|
cmd = new Command("Grant-CsArchivingPolicy");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.ArchivePolicy) ? null : plan.ArchivePolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
// DialPlan
|
||||||
|
cmd = new Command("Grant-CsDialPlan");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.TelephonyDialPlanPolicy) ? null : plan.TelephonyDialPlanPolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
// VoicePolicy
|
||||||
|
cmd = new Command("Grant-CsVoicePolicy");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.TelephonyVoicePolicy) ? null : plan.TelephonyVoicePolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//initiate user database replication
|
//initiate user database replication
|
||||||
cmd = new Command("Update-CsUserDatabase");
|
cmd = new Command("Update-CsUserDatabase");
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
@ -887,6 +927,90 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
HostedSolutionLog.LogEnd("DeleteMobilityPolicy");
|
HostedSolutionLog.LogEnd("DeleteMobilityPolicy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal string[] GetPolicyListInternal(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
List<string> ret = new List<string>();
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case LyncPolicyType.Archiving:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsArchivingPolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.DialPlan:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsDialPlan");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string Description = "" + (string)GetPSObjectProperty(res, "Description");
|
||||||
|
if (Description.ToLower().IndexOf(name.ToLower()) == -1) continue;
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.Voice:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsVoicePolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string Description = "" + (string)GetPSObjectProperty(res, "Description");
|
||||||
|
if (Description.ToLower().IndexOf(name.ToLower()) == -1) continue;
|
||||||
|
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.Pin:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsPinPolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string str = "" + GetPSObjectProperty(res, name);
|
||||||
|
ret.Add(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return ret.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sytsem Related Methods
|
#region Sytsem Related Methods
|
||||||
|
|
|
@ -628,6 +628,16 @@ namespace WebsitePanel.Providers.Lync {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetPolicyList", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("GetPolicyList", new object[] {
|
||||||
|
type, name});
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
base.CancelAsync(userState);
|
base.CancelAsync(userState);
|
||||||
|
|
|
@ -247,7 +247,25 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
string[] ret = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("{0}.GetPolicyList", ProviderSettings.ProviderName);
|
||||||
|
ret = Lync.GetPolicyList(type, name);
|
||||||
|
Log.WriteEnd("{0}.GetPolicyList", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("Error: {0}.GetPolicyList", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,6 +81,9 @@
|
||||||
<!--END-->
|
<!--END-->
|
||||||
<!--MenuItem url="http://phpmysqladmin.com" title="phpMyAdmin" target="_blank"
|
<!--MenuItem url="http://phpmysqladmin.com" title="phpMyAdmin" target="_blank"
|
||||||
resourceGroup="MySQL4"/-->
|
resourceGroup="MySQL4"/-->
|
||||||
|
|
||||||
|
<MenuItem pageID="LyncPhoneNumbers" resourceGroup="Hosted Organizations" />
|
||||||
|
|
||||||
</ModuleData>
|
</ModuleData>
|
||||||
|
|
||||||
<ModuleData id="SpaceIcons">
|
<ModuleData id="SpaceIcons">
|
||||||
|
|
|
@ -160,6 +160,16 @@
|
||||||
<Control key="edit_ip" src="WebsitePanel/IPAddressesEditIPAddress.ascx" title="EditIPAddress" type="View" icon="adress_48.png" />
|
<Control key="edit_ip" src="WebsitePanel/IPAddressesEditIPAddress.ascx" title="EditIPAddress" type="View" icon="adress_48.png" />
|
||||||
</Controls>
|
</Controls>
|
||||||
</ModuleDefinition>
|
</ModuleDefinition>
|
||||||
|
|
||||||
|
<ModuleDefinition id="PhoneNumbers">
|
||||||
|
<Controls>
|
||||||
|
<Control key="" src="WebsitePanel/PhoneNumbers.ascx" title="PhoneNumbers" type="View" />
|
||||||
|
<Control key="add_phone" src="WebsitePanel/PhoneNumbersAddPhoneNumber.ascx" title="AddPhoneNumber" type="View" icon="adress_add_48.png" />
|
||||||
|
<Control key="edit_phone" src="WebsitePanel/PhoneNumbersEditPhoneNumber.ascx" title="EditPhoneNumber" type="View" icon="adress_48.png" />
|
||||||
|
</Controls>
|
||||||
|
</ModuleDefinition>
|
||||||
|
|
||||||
|
|
||||||
<ModuleDefinition id="Servers">
|
<ModuleDefinition id="Servers">
|
||||||
<Controls>
|
<Controls>
|
||||||
<Control key="" src="WebsitePanel/Servers.ascx" title="Servers" type="View" />
|
<Control key="" src="WebsitePanel/Servers.ascx" title="Servers" type="View" />
|
||||||
|
@ -264,6 +274,12 @@
|
||||||
<Control key="allocate_addresses" src="WebsitePanel/WebSitesAllocateIPAddresses.ascx" title="WebSitesAllocateIPAddresses" type="View" />
|
<Control key="allocate_addresses" src="WebsitePanel/WebSitesAllocateIPAddresses.ascx" title="WebSitesAllocateIPAddresses" type="View" />
|
||||||
</Controls>
|
</Controls>
|
||||||
</ModuleDefinition>
|
</ModuleDefinition>
|
||||||
|
<ModuleDefinition id="LyncPhoneNumbers">
|
||||||
|
<Controls>
|
||||||
|
<Control key="" src="WebsitePanel/LyncPhoneNumbers.ascx" title="LyncPhoneNumbers" type="View" />
|
||||||
|
<Control key="allocate_phonenumbers" src="WebsitePanel/LyncAllocatePhoneNumbers.ascx" title="LyncPhoneNumbers" type="View" />
|
||||||
|
</Controls>
|
||||||
|
</ModuleDefinition>
|
||||||
<ModuleDefinition id="FtpAccounts">
|
<ModuleDefinition id="FtpAccounts">
|
||||||
<Controls>
|
<Controls>
|
||||||
<Control key="" src="WebsitePanel/FtpAccounts.ascx" title="FTPAccounts" type="View" />
|
<Control key="" src="WebsitePanel/FtpAccounts.ascx" title="FTPAccounts" type="View" />
|
||||||
|
|
|
@ -212,6 +212,17 @@
|
||||||
</Content>
|
</Content>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
||||||
|
<Page name="LyncPhoneNumbers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
|
||||||
|
<Content id="LeftPane">
|
||||||
|
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
|
||||||
|
<ModuleData ref="SpaceMenu"/>
|
||||||
|
</Module>
|
||||||
|
</Content>
|
||||||
|
<Content id="ContentPane">
|
||||||
|
<Module moduleDefinitionID="LyncPhoneNumbers" title="LyncPhoneNumbers" icon="adress_48.png" />
|
||||||
|
</Content>
|
||||||
|
</Page>
|
||||||
|
|
||||||
<Page name="SpaceFtpAccounts" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
|
<Page name="SpaceFtpAccounts" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
|
||||||
<Content id="LeftPane">
|
<Content id="LeftPane">
|
||||||
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
|
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
|
||||||
|
@ -558,6 +569,11 @@
|
||||||
<Module moduleDefinitionID="IPAddresses" title="IPAddresses" container="Edit.ascx" icon="adress_48.png" />
|
<Module moduleDefinitionID="IPAddresses" title="IPAddresses" container="Edit.ascx" icon="adress_48.png" />
|
||||||
</Content>
|
</Content>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page name="PhoneNumbers" roles="Administrator" skin="Browse1.ascx">
|
||||||
|
<Content id="ContentPane">
|
||||||
|
<Module moduleDefinitionID="PhoneNumbers" title="PhoneNumbers" container="Edit.ascx" icon="adress_48.png" />
|
||||||
|
</Content>
|
||||||
|
</Page>
|
||||||
<Page name="SystemSettings" roles="Administrator" skin="Browse1.ascx">
|
<Page name="SystemSettings" roles="Administrator" skin="Browse1.ascx">
|
||||||
<Content id="ContentPane">
|
<Content id="ContentPane">
|
||||||
<Module moduleDefinitionID="SystemSettings" title="SystemSettings" container="Edit.ascx" icon="tool_48.png" />
|
<Module moduleDefinitionID="SystemSettings" title="SystemSettings" container="Edit.ascx" icon="tool_48.png" />
|
||||||
|
|
|
@ -771,8 +771,19 @@
|
||||||
<data name="ModuleTitle.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
<data name="ModuleTitle.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
<value>System Hard Quota</value>
|
<value>System Hard Quota</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<data name="ModuleTitle.HeliconZoo" xml:space="preserve">
|
<data name="ModuleTitle.HeliconZoo" xml:space="preserve">
|
||||||
<value>Helicon Zoo</value>
|
<value>Helicon Zoo</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ModuleTitle.LyncPhoneNumbers" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="ModuleTitle.AddPhoneNumber" xml:space="preserve">
|
||||||
|
<value>Add Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="ModuleTitle.EditPhoneNumber" xml:space="preserve">
|
||||||
|
<value>Edit Phone numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="ModuleTitle.PhoneNumbers" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -462,4 +462,16 @@
|
||||||
<data name="PageName.SpaceApplyEnableHardQuotaFeature" xml:space="preserve">
|
<data name="PageName.SpaceApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
<value>System Hard Quota</value>
|
<value>System Hard Quota</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="PageName.LyncPhoneNumbers" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="PageTitle.LyncPhoneNumbers" xml:space="preserve">
|
||||||
|
<value>{user} - {space} - Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="PageName.PhoneNumbers" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="PageTitle.PhoneNumbers" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -3118,7 +3118,6 @@
|
||||||
<data name="Error.ORGANIZATION_SET_USER_USERPRINCIPALNAME" xml:space="preserve">
|
<data name="Error.ORGANIZATION_SET_USER_USERPRINCIPALNAME" xml:space="preserve">
|
||||||
<value>Failed to update user login name.</value>
|
<value>Failed to update user login name.</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<data name="Success.EXCHANGE_MAILBOX_SET_DEFAULT_EMAIL" xml:space="preserve">
|
<data name="Success.EXCHANGE_MAILBOX_SET_DEFAULT_EMAIL" xml:space="preserve">
|
||||||
<value>Mailbox primary e-mail address has been changed.</value>
|
<value>Mailbox primary e-mail address has been changed.</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -3371,7 +3370,6 @@
|
||||||
<data name="Warning.NOT_ALL_EMAIL_ADDRESSES_DELETED" xml:space="preserve">
|
<data name="Warning.NOT_ALL_EMAIL_ADDRESSES_DELETED" xml:space="preserve">
|
||||||
<value>Please note not all email address are deleted</value>
|
<value>Please note not all email address are deleted</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<data name="Warning.EXCHANGE_NONE_PUBLIC_FOLDER_TO_DELETE" xml:space="preserve">
|
<data name="Warning.EXCHANGE_NONE_PUBLIC_FOLDER_TO_DELETE" xml:space="preserve">
|
||||||
<value>There are no public folders to delete</value>
|
<value>There are no public folders to delete</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -3960,9 +3958,6 @@
|
||||||
<data name="Warning.1602" xml:space="preserve">
|
<data name="Warning.1602" xml:space="preserve">
|
||||||
<value>IP Address could not be deleted</value>
|
<value>IP Address could not be deleted</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WarningDescription.1602" xml:space="preserve">
|
|
||||||
<value>IP Address could not be deleted because it is being used by Virtual Private Server.</value>
|
|
||||||
</data>
|
|
||||||
<data name="Error.VPS_ERROR_ADDING_IP_ADDRESS" xml:space="preserve">
|
<data name="Error.VPS_ERROR_ADDING_IP_ADDRESS" xml:space="preserve">
|
||||||
<value>Cannot add network adapter IP addresses</value>
|
<value>Cannot add network adapter IP addresses</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5286,6 +5281,12 @@
|
||||||
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
||||||
<value>Mailbox plan updated</value>
|
<value>Mailbox plan updated</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error.LYNC_UPDATEPLANS" xml:space="preserve">
|
||||||
|
<value>Lync plan update failed</value>
|
||||||
|
</data>
|
||||||
|
<data name="Success.LYNC_UPDATEPLANS" xml:space="preserve">
|
||||||
|
<value>Lync plan updated</value>
|
||||||
|
</data>
|
||||||
<data name="Error.LYNC_APPLYPLANTEMPLATE" xml:space="preserve">
|
<data name="Error.LYNC_APPLYPLANTEMPLATE" xml:space="preserve">
|
||||||
<value>Failed to apply plans template</value>
|
<value>Failed to apply plans template</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5313,4 +5314,19 @@
|
||||||
<data name="WarningDescription.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
<data name="WarningDescription.ApplyEnableHardQuotaFeature" xml:space="preserve">
|
||||||
<value>By clicking on the button 'Apply', you will apply the respective hard quota on each provisioned home folder. Note that this may take some time.</value>
|
<value>By clicking on the button 'Apply', you will apply the respective hard quota on each provisioned home folder. Note that this may take some time.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error.IP_ADD_PHONE" xml:space="preserve">
|
||||||
|
<value>Error adding Phone number</value>
|
||||||
|
</data>
|
||||||
|
<data name="Error.IP_ADD_PHONE_RANGE" xml:space="preserve">
|
||||||
|
<value>Cannot add Phone numbers range.</value>
|
||||||
|
</data>
|
||||||
|
<data name="Error.DEALLOCATE_SPACE_PHONE_NUMBER" xml:space="preserve">
|
||||||
|
<value>The following errors have been occurred:</value>
|
||||||
|
</data>
|
||||||
|
<data name="Success.DEALLOCATE_SPACE_PHONE_NUMBER" xml:space="preserve">
|
||||||
|
<value>Phone number have been successfully deallocated.</value>
|
||||||
|
</data>
|
||||||
|
<data name="WarningDescription.PHONE_EDIT_LIST_EMPTY_ERROR" xml:space="preserve">
|
||||||
|
<value>At least one Phone number must be selected.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -0,0 +1,126 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="locIPQuota.Text" xml:space="preserve">
|
||||||
|
<value>Number of Phone Numbers:</value>
|
||||||
|
</data>
|
||||||
|
<data name="secQuotas.Text" xml:space="preserve">
|
||||||
|
<value>Quotas</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,126 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="locIPQuota.Text" xml:space="preserve">
|
||||||
|
<value>Number of Phone Numbers:</value>
|
||||||
|
</data>
|
||||||
|
<data name="secQuotas.Text" xml:space="preserve">
|
||||||
|
<value>Quotas</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,204 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="btnAddItem.Text" xml:space="preserve">
|
||||||
|
<value>Add</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesExternalIP.Header" xml:space="preserve">
|
||||||
|
<value>Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesInternalIP.Header" xml:space="preserve">
|
||||||
|
<value>NAT Address</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesServer.Header" xml:space="preserve">
|
||||||
|
<value>Server</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesUser.Header" xml:space="preserve">
|
||||||
|
<value>User</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesComments.Header" xml:space="preserve">
|
||||||
|
<value>Comments</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddresses.Empty" xml:space="preserve">
|
||||||
|
<value>No Phone Numbers found in the selected Pool.</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.ExternalIP" xml:space="preserve">
|
||||||
|
<value>Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.InternalIP" xml:space="preserve">
|
||||||
|
<value>NAT Address</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.Server" xml:space="preserve">
|
||||||
|
<value>Server Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.Username" xml:space="preserve">
|
||||||
|
<value>Username</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesIsVps.Header" xml:space="preserve">
|
||||||
|
<value>VPS</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvIPAddressesGateway.Header" xml:space="preserve">
|
||||||
|
<value>Default Gateway</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsVpsExternalNetwork.Text" xml:space="preserve">
|
||||||
|
<value>VPS External Network IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsVpsManagementNetwork.Text" xml:space="preserve">
|
||||||
|
<value>VPS Management Network IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsWebSites.Text" xml:space="preserve">
|
||||||
|
<value>Web Sites IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsGeneral.Text" xml:space="preserve">
|
||||||
|
<value>General IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblItemsPerPage.Text" xml:space="preserve">
|
||||||
|
<value>Page size:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPool.Text" xml:space="preserve">
|
||||||
|
<value>Pool:</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDeleteSelected.OnClientClick" xml:space="preserve">
|
||||||
|
<value>return confirm('Delete selected?');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDeleteSelected.Text" xml:space="preserve">
|
||||||
|
<value>Delete selected</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnEditSelected.Text" xml:space="preserve">
|
||||||
|
<value>Edit selected...</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesItemName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Item</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesSpace.HeaderText" xml:space="preserve">
|
||||||
|
<value>Space</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesUser.HeaderText" xml:space="preserve">
|
||||||
|
<value>User</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.DefaultGateway" xml:space="preserve">
|
||||||
|
<value>Default Gateway</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.ItemName" xml:space="preserve">
|
||||||
|
<value>Item Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsPhoneNumbers.Text" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,172 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="lblExternalIP.Text" xml:space="preserve">
|
||||||
|
<value>IP Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblInternalIP.Text" xml:space="preserve">
|
||||||
|
<value>NAT Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locServer.Text" xml:space="preserve">
|
||||||
|
<value>Server:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblComments.Text" xml:space="preserve">
|
||||||
|
<value>Comments:</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
|
<value>Add</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.NotAssigned" xml:space="preserve">
|
||||||
|
<value><Not Assigned></value>
|
||||||
|
</data>
|
||||||
|
<data name="locIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>Settings:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTo.Text" xml:space="preserve">
|
||||||
|
<value>to</value>
|
||||||
|
</data>
|
||||||
|
<data name="locDefaultGateway.Text" xml:space="preserve">
|
||||||
|
<value>Default Gateway:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSubnetMask.Text" xml:space="preserve">
|
||||||
|
<value>Subnet Mask:</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsGeneral.Text" xml:space="preserve">
|
||||||
|
<value>General IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsVpsExternalNetwork.Text" xml:space="preserve">
|
||||||
|
<value>VPS External Network IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsVpsManagementNetwork.Text" xml:space="preserve">
|
||||||
|
<value>VPS Management Network IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsWebSites.Text" xml:space="preserve">
|
||||||
|
<value>Web Sites IP</value>
|
||||||
|
<comment> </comment>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsPhoneNumbers.Text" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPhoneNumbers.Text" xml:space="preserve">
|
||||||
|
<value>Phone Numbers:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,165 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="lblServer.Text" xml:space="preserve">
|
||||||
|
<value>Server:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblComments.Text" xml:space="preserve">
|
||||||
|
<value>Comments:</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnUpdate.Text" xml:space="preserve">
|
||||||
|
<value>Update</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.NotAssigned" xml:space="preserve">
|
||||||
|
<value><Not Assigned></value>
|
||||||
|
</data>
|
||||||
|
<data name="locDefaultGateway.Text" xml:space="preserve">
|
||||||
|
<value>Default Gateway:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSubnetMask.Text" xml:space="preserve">
|
||||||
|
<value>Subnet Mask:</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsGeneral.Text" xml:space="preserve">
|
||||||
|
<value>General IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsVpsExternalNetwork.Text" xml:space="preserve">
|
||||||
|
<value>VPS External Network IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsVpsManagementNetwork.Text" xml:space="preserve">
|
||||||
|
<value>VPS Management Network IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsWebSites.Text" xml:space="preserve">
|
||||||
|
<value>Web Sites IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblExternalIP.Text" xml:space="preserve">
|
||||||
|
<value>IP Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblInternalIP.Text" xml:space="preserve">
|
||||||
|
<value>NAT Address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlPoolsPhoneNumbers.Text" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblPhoneNumbers.Text" xml:space="preserve">
|
||||||
|
<value>Phone Number:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -1,10 +1,39 @@
|
||||||
//------------------------------------------------------------------------------
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ExchangeServer {
|
namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
|
@ -13,128 +42,142 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
public partial class ExchangeDisclaimerGeneralSettings {
|
public partial class ExchangeDisclaimerGeneralSettings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// asyncTasks элемент управления.
|
/// asyncTasks control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// breadcrumb элемент управления.
|
/// breadcrumb control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// menu элемент управления.
|
/// menu control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Image1 элемент управления.
|
/// Image1 control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Image Image1;
|
protected global::System.Web.UI.WebControls.Image Image1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locTitle элемент управления.
|
/// locTitle control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize locTitle;
|
protected global::System.Web.UI.WebControls.Localize locTitle;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// litDisplayName элемент управления.
|
/// litDisplayName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Literal litDisplayName;
|
protected global::System.Web.UI.WebControls.Literal litDisplayName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// messageBox элемент управления.
|
/// messageBox control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locDisplayName элемент управления.
|
/// locDisplayName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize locDisplayName;
|
protected global::System.Web.UI.WebControls.Localize locDisplayName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtDisplayName элемент управления.
|
/// txtDisplayName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtDisplayName;
|
protected global::System.Web.UI.WebControls.TextBox txtDisplayName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// valRequireDisplayName элемент управления.
|
/// valRequireDisplayName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireDisplayName;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireDisplayName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locNotes элемент управления.
|
/// locNotes control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize locNotes;
|
protected global::System.Web.UI.WebControls.Localize locNotes;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtNotes элемент управления.
|
/// txtNotes control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtNotes;
|
protected global::System.Web.UI.WebControls.TextBox txtNotes;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnSave элемент управления.
|
/// btnSave control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Button btnSave;
|
protected global::System.Web.UI.WebControls.Button btnSave;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ValidationSummary1 элемент управления.
|
/// ValidationSummary1 control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,11 +60,6 @@
|
||||||
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
||||||
|
@ -79,6 +74,135 @@
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesFederation" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesFederation" meta:resourcekey="secPlanFeaturesFederation" Text="Federation">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesFederation" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkRemoteUserAccess" runat="server" meta:resourcekey="chkRemoteUserAccess" Text="Remote User access"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkPublicIMConnectivity" runat="server" meta:resourcekey="chkPublicIMConnectivity" Text="Public IM Connectivity"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesArchiving" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesArchiving" meta:resourcekey="secPlanFeaturesArchiving" Text="Archiving">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesArchiving" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locArchivingPolicy" meta:resourcekey="locArchivingPolicy" Text="Archiving Policy:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddArchivingPolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesMeeting" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesMeeting" meta:resourcekey="secPlanFeaturesMeeting" Text="Meeting">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesMeeting" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkAllowOrganizeMeetingsWithExternalAnonymous" runat="server" meta:resourcekey="chkAllowOrganizeMeetingsWithExternalAnonymous" Text="Allow organize meetings with external anonymous participants"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesTelephony" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesTelephony" meta:resourcekey="secPlanFeaturesTelephony" Text="Telephony">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesTelephony" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephony" meta:resourcekey="locTelephony" Text="Telephony :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephony" runat="server" AutoPostBack="True">
|
||||||
|
<asp:ListItem Value="0" Text="Audio/Video disabled" meta:resourcekey="ddlTelephonyDisabled" />
|
||||||
|
<asp:ListItem Value="1" Text="PC-to-PC only" meta:resourcekey="ddlTelephonyPCtoPCOnly" />
|
||||||
|
<asp:ListItem Value="2" Text="Enterprise voice" meta:resourcekey="ddlTelephonyEnterpriseVoice" />
|
||||||
|
<asp:ListItem Value="3" Text="Remote call control" meta:resourcekey="ddlTelephonyRemoteCallControl" />
|
||||||
|
<asp:ListItem Value="4" Text="Remote call control only" meta:resourcekey="ddlTelephonyRemoteCallControlOnly" />
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephonyProvider" meta:resourcekey="locTelephonyProvider" Text="Telephony Provider :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbTelephoneProvider" runat="server"></asp:TextBox>
|
||||||
|
<asp:Button runat="server" ID="btnAccept" Text="Accept" OnClick="btnAccept_Click" OnClientClick="ShowProgressDialog('Loading...');" ValidationGroup="Accept"/>
|
||||||
|
|
||||||
|
<asp:RequiredFieldValidator id="AcceptRequiredValidator" runat="server" ErrorMessage="Please enter provider name"
|
||||||
|
ControlToValidate="tbTelephoneProvider" Display="Dynamic" ValidationGroup="Accept" SetFocusOnError="true"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locDialPlan" meta:resourcekey="locDialPlan" Text="Dial Plan :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyDialPlanPolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locVoicePolicy" meta:resourcekey="locVoicePolicy" Text="Voice Policy :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyVoicePolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnServerURI">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locServerURI" meta:resourcekey="locServerURI" Text="Server URI :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbServerURI" runat="server"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<%-- Disable because not used
|
||||||
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
||||||
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
|
@ -115,7 +239,7 @@
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
--%>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
|
|
|
@ -30,6 +30,11 @@ using System;
|
||||||
using WebsitePanel.EnterpriseServer;
|
using WebsitePanel.EnterpriseServer;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using WebsitePanel.Providers.ResultObjects;
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
|
using WebsitePanel.Providers;
|
||||||
|
using WebsitePanel.Providers.Web;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
using WebsitePanel.Portal.Code.Helpers;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync
|
namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
|
@ -37,11 +42,22 @@ namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
PackageContext cntx = null;
|
||||||
|
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
|
cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
|
||||||
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
string[] archivePolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Archiving, null);
|
||||||
|
if (archivePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in archivePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower()=="global") continue;
|
||||||
|
string txt = policy.Replace("Tag:","");
|
||||||
|
ddArchivingPolicy.Items.Add( new System.Web.UI.WebControls.ListItem( txt, policy) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (PanelRequest.GetInt("LyncUserPlanId") != 0)
|
if (PanelRequest.GetInt("LyncUserPlanId") != 0)
|
||||||
{
|
{
|
||||||
|
@ -54,6 +70,8 @@ namespace WebsitePanel.Portal.Lync
|
||||||
chkConferencing.Checked = plan.Conferencing;
|
chkConferencing.Checked = plan.Conferencing;
|
||||||
chkMobility.Checked = plan.Mobility;
|
chkMobility.Checked = plan.Mobility;
|
||||||
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
||||||
|
|
||||||
|
/* because not used
|
||||||
switch (plan.VoicePolicy)
|
switch (plan.VoicePolicy)
|
||||||
{
|
{
|
||||||
case LyncVoicePolicyType.None:
|
case LyncVoicePolicyType.None:
|
||||||
|
@ -74,16 +92,40 @@ namespace WebsitePanel.Portal.Lync
|
||||||
chkNone.Checked = true;
|
chkNone.Checked = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
chkRemoteUserAccess.Checked = plan.RemoteUserAccess;
|
||||||
|
chkPublicIMConnectivity.Checked = plan.PublicIMConnectivity;
|
||||||
|
|
||||||
|
chkAllowOrganizeMeetingsWithExternalAnonymous.Checked = plan.AllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
ddTelephony.SelectedIndex = plan.Telephony;
|
||||||
|
|
||||||
|
tbServerURI.Text = plan.ServerURI;
|
||||||
|
|
||||||
locTitle.Text = plan.LyncUserPlanName;
|
locTitle.Text = plan.LyncUserPlanName;
|
||||||
this.DisableControls = true;
|
this.DisableControls = true;
|
||||||
|
|
||||||
|
string planArchivePolicy = "";
|
||||||
|
if (plan.ArchivePolicy != null) planArchivePolicy = plan.ArchivePolicy;
|
||||||
|
string planTelephonyDialPlanPolicy = "";
|
||||||
|
if (plan.TelephonyDialPlanPolicy != null) planTelephonyDialPlanPolicy = plan.TelephonyDialPlanPolicy;
|
||||||
|
string planTelephonyVoicePolicy = "";
|
||||||
|
if (plan.TelephonyVoicePolicy != null) planTelephonyVoicePolicy = plan.TelephonyVoicePolicy;
|
||||||
|
|
||||||
|
ddArchivingPolicy.Items.Clear();
|
||||||
|
ddArchivingPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planArchivePolicy.Replace("Tag:", ""), planArchivePolicy));
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyDialPlanPolicy.Replace("Tag:", ""), planTelephonyDialPlanPolicy));
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyVoicePolicy.Replace("Tag:", ""), planTelephonyVoicePolicy));
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
chkIM.Checked = true;
|
chkIM.Checked = true;
|
||||||
chkIM.Enabled = false;
|
chkIM.Enabled = false;
|
||||||
chkNone.Checked = true;
|
// chkNone.Checked = true; because not used
|
||||||
if (cntx != null)
|
if (cntx != null)
|
||||||
{
|
{
|
||||||
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
@ -110,6 +152,33 @@ namespace WebsitePanel.Portal.Lync
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chkEnterpriseVoice.Enabled = false;
|
||||||
|
chkEnterpriseVoice.Checked = false;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = false;
|
||||||
|
pnServerURI.Visible = false;
|
||||||
|
|
||||||
|
switch (ddTelephony.SelectedIndex)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
pnEnterpriseVoice.Visible = true;
|
||||||
|
chkEnterpriseVoice.Checked = true;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||||
|
PlanFeaturesTelephony.Visible = Utils.CheckQouta(Quotas.LYNC_ENTERPRISEVOICE, cntx);
|
||||||
|
secPlanFeaturesTelephony.Visible = PlanFeaturesTelephony.Visible;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnAdd_Click(object sender, EventArgs e)
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
@ -117,6 +186,37 @@ namespace WebsitePanel.Portal.Lync
|
||||||
AddPlan();
|
AddPlan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnAccept_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string name = tbTelephoneProvider.Text;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(name)) return;
|
||||||
|
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
string[] dialPlan = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.DialPlan, name);
|
||||||
|
if (dialPlan != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in dialPlan)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
string[] voicePolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Voice, name);
|
||||||
|
if (voicePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in voicePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void AddPlan()
|
private void AddPlan()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -132,6 +232,10 @@ namespace WebsitePanel.Portal.Lync
|
||||||
|
|
||||||
|
|
||||||
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
||||||
|
|
||||||
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
|
/* because not used
|
||||||
if (!plan.EnterpriseVoice)
|
if (!plan.EnterpriseVoice)
|
||||||
{
|
{
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
@ -150,6 +254,20 @@ namespace WebsitePanel.Portal.Lync
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
plan.RemoteUserAccess = chkRemoteUserAccess.Checked;
|
||||||
|
plan.PublicIMConnectivity = chkPublicIMConnectivity.Checked;
|
||||||
|
|
||||||
|
plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked;
|
||||||
|
|
||||||
|
plan.Telephony = ddTelephony.SelectedIndex;
|
||||||
|
|
||||||
|
plan.ServerURI = tbServerURI.Text;
|
||||||
|
|
||||||
|
plan.ArchivePolicy = ddArchivingPolicy.SelectedValue;
|
||||||
|
plan.TelephonyDialPlanPolicy = ddTelephonyDialPlanPolicy.SelectedValue;
|
||||||
|
plan.TelephonyVoicePolicy = ddTelephonyVoicePolicy.SelectedValue;
|
||||||
|
|
||||||
int result = ES.Services.Lync.AddLyncUserPlan(PanelRequest.ItemID,
|
int result = ES.Services.Lync.AddLyncUserPlan(PanelRequest.ItemID,
|
||||||
plan);
|
plan);
|
||||||
|
|
|
@ -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,
|
||||||
|
@ -34,7 +34,6 @@
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync {
|
namespace WebsitePanel.Portal.Lync {
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,15 +165,6 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// chkFederation 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 chkFederation;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkConferencing control.
|
/// chkConferencing control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -194,67 +184,256 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secEnterpriseVoice control.
|
/// secPlanFeaturesFederation 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 secEnterpriseVoice;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EnterpriseVoice control.
|
/// PlanFeaturesFederation 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 EnterpriseVoice;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNone control.
|
/// chkFederation 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.RadioButton chkNone;
|
protected global::System.Web.UI.WebControls.CheckBox chkFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkEmergency control.
|
/// chkRemoteUserAccess 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.RadioButton chkEmergency;
|
protected global::System.Web.UI.WebControls.CheckBox chkRemoteUserAccess;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNational control.
|
/// chkPublicIMConnectivity 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.RadioButton chkNational;
|
protected global::System.Web.UI.WebControls.CheckBox chkPublicIMConnectivity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkMobile control.
|
/// secPlanFeaturesArchiving 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.RadioButton chkMobile;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesArchiving;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkInternational control.
|
/// PlanFeaturesArchiving 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.RadioButton chkInternational;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesArchiving;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locArchivingPolicy 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 locArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddArchivingPolicy 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 ddArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesMeeting control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesMeeting 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 PlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkAllowOrganizeMeetingsWithExternalAnonymous 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 chkAllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesTelephony 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 PlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephony 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 locTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephony 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 ddTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice 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 pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephonyProvider 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 locTelephonyProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbTelephoneProvider 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 tbTelephoneProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAccept 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 btnAccept;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AcceptRequiredValidator 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 AcceptRequiredValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locDialPlan 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 locDialPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyDialPlanPolicy 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 ddTelephonyDialPlanPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locVoicePolicy 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 locVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyVoicePolicy 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 ddTelephonyVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnServerURI 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 pnServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locServerURI 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 locServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbServerURI 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 tbServerURI;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAdd control.
|
/// btnAdd control.
|
||||||
|
@ -273,14 +452,5 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,9 +45,40 @@
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locPhoneNumber" meta:resourcekey="locPhoneNumber" Text="Phone Number:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<!-- <asp:TextBox runat="server" ID="tb_PhoneNumber" /> -->
|
||||||
|
<asp:dropdownlist id="ddlPhoneNumber" Runat="server" CssClass="NormalTextBox"></asp:dropdownlist>
|
||||||
|
<asp:RegularExpressionValidator ID="PhoneFormatValidator" runat="server"
|
||||||
|
ControlToValidate="ddlPhoneNumber" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locLyncPin" meta:resourcekey="locLyncPin" Text="Lync Pin:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="tbPin" />
|
||||||
|
<asp:RegularExpressionValidator ID="PinRegularExpressionValidator" runat="server"
|
||||||
|
ControlToValidate="tbPin" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button id="btnCreate" runat="server"
|
<asp:Button id="btnCreate" runat="server" ValidationGroup="Validation1"
|
||||||
CssClass="Button1" meta:resourcekey="btnCreate"
|
CssClass="Button1" meta:resourcekey="btnCreate"
|
||||||
onclick="btnCreate_Click" ></asp:Button>
|
onclick="btnCreate_Click" ></asp:Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -30,6 +30,13 @@
|
||||||
using WebsitePanel.Providers.ResultObjects;
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
using WebsitePanel.EnterpriseServer;
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Web.UI.WebControls.WebParts;
|
||||||
|
using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync
|
namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
public partial class CreateLyncUser : WebsitePanelModuleBase
|
public partial class CreateLyncUser : WebsitePanelModuleBase
|
||||||
|
@ -40,10 +47,60 @@ namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
BindPhoneNumbers();
|
||||||
|
|
||||||
if (plans.Length == 0)
|
if (plans.Length == 0)
|
||||||
btnCreate.Enabled = false;
|
btnCreate.Enabled = false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindPhoneNumbers()
|
||||||
|
{
|
||||||
|
|
||||||
|
ddlPhoneNumber.Items.Add(new ListItem("<Select Phone>", ""));
|
||||||
|
|
||||||
|
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.PhoneNumbers);
|
||||||
|
foreach (PackageIPAddress ip in ips)
|
||||||
|
{
|
||||||
|
string phone = ip.ExternalIP;
|
||||||
|
ddlPhoneNumber.Items.Add(new ListItem(phone, ip.PackageAddressID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void Page_PreRender(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bool EnterpriseVoice = false;
|
||||||
|
|
||||||
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan plan = planSelector.plan;
|
||||||
|
if (plan != null)
|
||||||
|
EnterpriseVoice = plan.EnterpriseVoice;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = EnterpriseVoice;
|
||||||
|
|
||||||
|
if (!EnterpriseVoice)
|
||||||
|
{
|
||||||
|
ddlPhoneNumber.Text = "";
|
||||||
|
tbPin.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EnterpriseVoice)
|
||||||
|
{
|
||||||
|
string[] pinPolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Pin, "MinPasswordLength");
|
||||||
|
if (pinPolicy != null)
|
||||||
|
{
|
||||||
|
if (pinPolicy.Length > 0)
|
||||||
|
{
|
||||||
|
int MinPasswordLength = -1;
|
||||||
|
if (int.TryParse(pinPolicy[0], out MinPasswordLength))
|
||||||
|
{
|
||||||
|
PinRegularExpressionValidator.ValidationExpression = "^([0-9]){" + MinPasswordLength.ToString() + ",}$";
|
||||||
|
PinRegularExpressionValidator.ErrorMessage = "Must contain only numbers. Min. length " + MinPasswordLength.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,6 +110,11 @@ namespace WebsitePanel.Portal.Lync
|
||||||
LyncUserResult res = ES.Services.Lync.CreateLyncUser(PanelRequest.ItemID, accountId, Convert.ToInt32(planSelector.planId));
|
LyncUserResult res = ES.Services.Lync.CreateLyncUser(PanelRequest.ItemID, accountId, Convert.ToInt32(planSelector.planId));
|
||||||
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//#1
|
||||||
|
LyncUser lyncUser = ES.Services.Lync.GetLyncUserGeneralSettings(PanelRequest.ItemID, accountId);
|
||||||
|
ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, accountId, lyncUser.SipAddress, ddlPhoneNumber.SelectedItem.Text + ":" + tbPin.Text);
|
||||||
|
|
||||||
Response.Redirect(EditUrl("AccountID", accountId.ToString(), "edit_lync_user",
|
Response.Redirect(EditUrl("AccountID", accountId.ToString(), "edit_lync_user",
|
||||||
"SpaceID=" + PanelSecurity.PackageId,
|
"SpaceID=" + PanelSecurity.PackageId,
|
||||||
"ItemID=" + PanelRequest.ItemID));
|
"ItemID=" + PanelRequest.ItemID));
|
||||||
|
|
|
@ -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,
|
||||||
|
@ -46,6 +46,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.EnableAsyncTasksSupport asyncTasks;
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
@ -55,6 +56,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
||||||
|
|
||||||
|
@ -64,6 +66,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.ExchangeServer.UserControls.Menu menu;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
||||||
|
|
||||||
|
@ -73,6 +76,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.Image Image1;
|
protected global::System.Web.UI.WebControls.Image Image1;
|
||||||
|
|
||||||
|
@ -82,6 +86,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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 locTitle;
|
protected global::System.Web.UI.WebControls.Localize locTitle;
|
||||||
|
|
||||||
|
@ -91,6 +96,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.SimpleMessageBox messageBox;
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
@ -100,6 +106,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.HtmlControls.HtmlTable ExistingUserTable;
|
protected global::System.Web.UI.HtmlControls.HtmlTable ExistingUserTable;
|
||||||
|
|
||||||
|
@ -109,6 +116,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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 Localize1;
|
protected global::System.Web.UI.WebControls.Localize Localize1;
|
||||||
|
|
||||||
|
@ -118,6 +126,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.ExchangeServer.UserControls.UserSelector userSelector;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.UserSelector userSelector;
|
||||||
|
|
||||||
|
@ -127,6 +136,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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 locPlanName;
|
protected global::System.Web.UI.WebControls.Localize locPlanName;
|
||||||
|
|
||||||
|
@ -136,15 +146,87 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.Lync.UserControls.LyncUserPlanSelector planSelector;
|
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector planSelector;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice 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 pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locPhoneNumber 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 locPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlPhoneNumber 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 ddlPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PhoneFormatValidator 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 PhoneFormatValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locLyncPin 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 locLyncPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbPin 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 tbPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PinRegularExpressionValidator 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 PinRegularExpressionValidator;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnCreate control.
|
/// btnCreate 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.Button btnCreate;
|
protected global::System.Web.UI.WebControls.Button btnCreate;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,11 +47,42 @@
|
||||||
<wsp:LyncUserSettings ID="lyncUserSettings" runat="server" />
|
<wsp:LyncUserSettings ID="lyncUserSettings" runat="server" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locPhoneNumber" meta:resourcekey="locPhoneNumber" Text="Phone Number:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<!-- <asp:TextBox runat="server" ID="tb_PhoneNumber" /> -->
|
||||||
|
<asp:dropdownlist id="ddlPhoneNumber" Runat="server" CssClass="NormalTextBox"></asp:dropdownlist>
|
||||||
|
<asp:RegularExpressionValidator ID="PhoneFormatValidator" runat="server"
|
||||||
|
ControlToValidate="ddlPhoneNumber" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locLyncPin" meta:resourcekey="locLyncPin" Text="Lync Pin:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="tbPin" />
|
||||||
|
<asp:RegularExpressionValidator ID="PinRegularExpressionValidator" runat="server"
|
||||||
|
ControlToValidate="tbPin" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button runat="server" ID="btnSave" meta:resourcekey="btnSave"
|
<asp:Button runat="server" ID="btnSave" meta:resourcekey="btnSave" ValidationGroup="Validation1"
|
||||||
CssClass="Button1" onclick="btnSave_Click" />
|
CssClass="Button1" onclick="btnSave_Click" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -31,6 +31,11 @@ using WebsitePanel.EnterpriseServer;
|
||||||
using WebsitePanel.Providers.ResultObjects;
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Web.UI.WebControls.WebParts;
|
||||||
|
using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync
|
namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
public partial class EditLyncUser : WebsitePanelModuleBase
|
public partial class EditLyncUser : WebsitePanelModuleBase
|
||||||
|
@ -39,7 +44,59 @@ namespace WebsitePanel.Portal.Lync
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
BindPhoneNumbers();
|
||||||
BindItems();
|
BindItems();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindPhoneNumbers()
|
||||||
|
{
|
||||||
|
|
||||||
|
ddlPhoneNumber.Items.Add(new ListItem("<Select Phone>", ""));
|
||||||
|
|
||||||
|
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.PhoneNumbers);
|
||||||
|
foreach (PackageIPAddress ip in ips)
|
||||||
|
{
|
||||||
|
string phone = ip.ExternalIP;
|
||||||
|
ddlPhoneNumber.Items.Add(new ListItem(phone, phone));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void Page_PreRender(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bool EnterpriseVoice = false;
|
||||||
|
|
||||||
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan plan = planSelector.plan;
|
||||||
|
if (plan != null)
|
||||||
|
EnterpriseVoice = plan.EnterpriseVoice;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = EnterpriseVoice;
|
||||||
|
|
||||||
|
if (!EnterpriseVoice)
|
||||||
|
{
|
||||||
|
ddlPhoneNumber.Text = "";
|
||||||
|
tbPin.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EnterpriseVoice)
|
||||||
|
{
|
||||||
|
string[] pinPolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Pin, "MinPasswordLength");
|
||||||
|
if (pinPolicy != null)
|
||||||
|
{
|
||||||
|
if (pinPolicy.Length > 0)
|
||||||
|
{
|
||||||
|
int MinPasswordLength = -1;
|
||||||
|
if (int.TryParse(pinPolicy[0], out MinPasswordLength))
|
||||||
|
{
|
||||||
|
PinRegularExpressionValidator.ValidationExpression = "^([0-9]){" + MinPasswordLength.ToString() + ",}$";
|
||||||
|
PinRegularExpressionValidator.ErrorMessage = "Must contain only numbers. Min. length " + MinPasswordLength.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +111,7 @@ namespace WebsitePanel.Portal.Lync
|
||||||
planSelector.planId = lyncUser.LyncUserPlanId.ToString();
|
planSelector.planId = lyncUser.LyncUserPlanId.ToString();
|
||||||
lyncUserSettings.sipAddress = lyncUser.SipAddress;
|
lyncUserSettings.sipAddress = lyncUser.SipAddress;
|
||||||
|
|
||||||
|
Utils.SelectListItem(ddlPhoneNumber, lyncUser.LineUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnSave_Click(object sender, EventArgs e)
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
@ -65,7 +123,7 @@ namespace WebsitePanel.Portal.Lync
|
||||||
LyncUserResult res = ES.Services.Lync.SetUserLyncPlan(PanelRequest.ItemID, PanelRequest.AccountID, Convert.ToInt32(planSelector.planId));
|
LyncUserResult res = ES.Services.Lync.SetUserLyncPlan(PanelRequest.ItemID, PanelRequest.AccountID, Convert.ToInt32(planSelector.planId));
|
||||||
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
||||||
{
|
{
|
||||||
res = ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID, lyncUserSettings.sipAddress, string.Empty);
|
res = ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID, lyncUserSettings.sipAddress, ddlPhoneNumber.SelectedItem.Text + ":" + tbPin.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
||||||
|
|
|
@ -46,6 +46,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.EnableAsyncTasksSupport asyncTasks;
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
@ -55,6 +56,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Breadcrumb breadcrumb;
|
||||||
|
|
||||||
|
@ -64,6 +66,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.ExchangeServer.UserControls.Menu menu;
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.Menu menu;
|
||||||
|
|
||||||
|
@ -73,6 +76,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.Image Image1;
|
protected global::System.Web.UI.WebControls.Image Image1;
|
||||||
|
|
||||||
|
@ -82,6 +86,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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 locTitle;
|
protected global::System.Web.UI.WebControls.Localize locTitle;
|
||||||
|
|
||||||
|
@ -91,6 +96,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.Literal litDisplayName;
|
protected global::System.Web.UI.WebControls.Literal litDisplayName;
|
||||||
|
|
||||||
|
@ -100,6 +106,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.SimpleMessageBox messageBox;
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
@ -109,6 +116,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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 locPlanName;
|
protected global::System.Web.UI.WebControls.Localize locPlanName;
|
||||||
|
|
||||||
|
@ -118,6 +126,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.Lync.UserControls.LyncUserPlanSelector planSelector;
|
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector planSelector;
|
||||||
|
|
||||||
|
@ -127,6 +136,7 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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 locSipAddress;
|
protected global::System.Web.UI.WebControls.Localize locSipAddress;
|
||||||
|
|
||||||
|
@ -136,15 +146,97 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// <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.Lync.UserControls.LyncUserSettings lyncUserSettings;
|
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserSettings lyncUserSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice 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 pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locPhoneNumber 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 locPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tb_PhoneNumber 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 tb_PhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlPhoneNumber 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 ddlPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PhoneFormatValidator 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 PhoneFormatValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locLyncPin 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 locLyncPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbPin 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 tbPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PinRegularExpressionValidator 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 PinRegularExpressionValidator;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnSave control.
|
/// btnSave 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.Button btnSave;
|
protected global::System.Web.UI.WebControls.Button btnSave;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncUserPlanSelector.ascx.cs" Inherits="WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncUserPlanSelector.ascx.cs" Inherits="WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector" %>
|
||||||
<asp:DropDownList ID="ddlPlan" runat="server" CssClass="NormalTextBox"></asp:DropDownList>
|
<asp:DropDownList ID="ddlPlan" runat="server" CssClass="NormalTextBox" AutoPostBack="true"></asp:DropDownList>
|
|
@ -39,7 +39,10 @@ namespace WebsitePanel.Portal.Lync.UserControls
|
||||||
public string planId
|
public string planId
|
||||||
{
|
{
|
||||||
|
|
||||||
get { return ddlPlan.SelectedItem.Value; }
|
get {
|
||||||
|
if (ddlPlan.Items.Count == 0) return "";
|
||||||
|
return ddlPlan.SelectedItem.Value;
|
||||||
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
planToSelect = value;
|
planToSelect = value;
|
||||||
|
@ -72,6 +75,19 @@ namespace WebsitePanel.Portal.Lync.UserControls
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WebsitePanel.Providers.HostedSolution.LyncUserPlan plan
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
||||||
|
foreach (WebsitePanel.Providers.HostedSolution.LyncUserPlan planitem in plans)
|
||||||
|
{
|
||||||
|
if (planitem.LyncUserPlanId.ToString() == planId) return planitem;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void BindPlans()
|
private void BindPlans()
|
||||||
{
|
{
|
||||||
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
||||||
|
|
|
@ -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,
|
||||||
|
@ -26,7 +26,6 @@
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -35,7 +34,6 @@
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync.UserControls {
|
namespace WebsitePanel.Portal.Lync.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncAllocatePhoneNumbers.ascx.cs" Inherits="WebsitePanel.Portal.LyncAllocatePhoneNumbers" %>
|
||||||
|
<%@ Register Src="UserControls/AllocatePackagePhoneNumbers.ascx" TagName="AllocatePackagePhoneNumbers" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<div class="FormBody">
|
||||||
|
|
||||||
|
<wsp:AllocatePackagePhoneNumbers id="allocatePhoneNumbers" runat="server"
|
||||||
|
Pool="PhoneNumbers"
|
||||||
|
ResourceGroup="Web"
|
||||||
|
ListAddressesControl="" />
|
||||||
|
|
||||||
|
</div>
|
|
@ -0,0 +1,44 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class LyncAllocatePhoneNumbers : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class LyncAllocatePhoneNumbers {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// allocatePhoneNumbers control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.AllocatePackagePhoneNumbers allocatePhoneNumbers;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncPhoneNumbers.ascx.cs" Inherits="WebsitePanel.Portal.LyncPhoneNumbers" %>
|
||||||
|
<%@ Register Src="UserControls/PackagePhoneNumbers.ascx" TagName="PackagePhoneNumbers" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:PackagePhoneNumbers id="webAddresses" runat="server"
|
||||||
|
Pool="PhoneNumbers"
|
||||||
|
EditItemControl=""
|
||||||
|
SpaceHomeControl=""
|
||||||
|
AllocateAddressesControl="allocate_phonenumbers"
|
||||||
|
ManageAllowed="true" />
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<wsp:CollapsiblePanel id="secQuotas" runat="server"
|
||||||
|
TargetControlID="QuotasPanel" meta:resourcekey="secQuotas" Text="Quotas">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="QuotasPanel" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
|
||||||
|
<table cellspacing="6">
|
||||||
|
<tr>
|
||||||
|
<td><asp:Localize ID="locIPQuota" runat="server" meta:resourcekey="locIPQuota" Text="Number of Phone Numbes:"></asp:Localize></td>
|
||||||
|
<td><wsp:Quota ID="addressesQuota" runat="server" QuotaName="Web.IPAddresses" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</asp:Panel>
|
||||||
|
</div>
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class LyncPhoneNumbers : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,93 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class LyncPhoneNumbers {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// webAddresses control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.PackagePhoneNumbers webAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secQuotas control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secQuotas;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// QuotasPanel 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 QuotasPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locIPQuota 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 locIPQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// addressesQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.Quota addressesQuota;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PhoneNumbers.ascx.cs" Inherits="WebsitePanel.Portal.PhoneNumbers" %>
|
||||||
|
<%@ Register Src="UserControls/SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<script language="javascript">
|
||||||
|
function SelectAllCheckboxes(box)
|
||||||
|
{
|
||||||
|
var state = box.checked;
|
||||||
|
var elm = box.parentElement.parentElement.parentElement.parentElement.getElementsByTagName("INPUT");
|
||||||
|
for(i = 0; i < elm.length; i++)
|
||||||
|
if(elm[i].type == "checkbox" && elm[i].id != box.id && elm[i].checked != state && !elm[i].disabled)
|
||||||
|
elm[i].checked = state;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
|
||||||
|
<div style="padding: 4px;">
|
||||||
|
<asp:Button ID="btnAddItem" runat="server" meta:resourcekey="btnAddItem" Text="Add" CssClass="Button3" OnClick="btnAddItem_Click" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="FormButtonsBar">
|
||||||
|
<div class="Right">
|
||||||
|
<wsp:SearchBox ID="searchBox" runat="server" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<asp:GridView id="gvIPAddresses" runat="server" AutoGenerateColumns="False"
|
||||||
|
AllowSorting="True" EmptyDataText="gvIPAddresses"
|
||||||
|
CssSelectorClass="NormalGridView" DataKeyNames="AddressID"
|
||||||
|
AllowPaging="True" DataSourceID="odsIPAddresses">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField>
|
||||||
|
<HeaderTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:SelectAllCheckboxes(this);" />
|
||||||
|
</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelect" runat="server" Enabled='<%# ((int)Eval("ItemID") == 0) %>' />
|
||||||
|
</ItemTemplate>
|
||||||
|
<ItemStyle Width="10px" />
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField SortExpression="ExternalIP" HeaderText="gvIPAddressesExternalIP">
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:hyperlink NavigateUrl='<%# EditUrl("AddressID", DataBinder.Eval(Container.DataItem, "AddressID").ToString(), "edit_phone") %>' runat="server" ID="Hyperlink2">
|
||||||
|
<%# Eval("ExternalIP") %>
|
||||||
|
</asp:hyperlink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:BoundField DataField="ServerName" SortExpression="ServerName" HeaderText="gvIPAddressesServer" ItemStyle-Wrap="false"></asp:BoundField>
|
||||||
|
<asp:TemplateField HeaderText="gvAddressesUser" meta:resourcekey="gvAddressesUser" SortExpression="Username" >
|
||||||
|
<ItemTemplate>
|
||||||
|
<%# Eval("UserName") %>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField HeaderText="gvAddressesSpace" meta:resourcekey="gvAddressesSpace" SortExpression="PackageName" >
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:hyperlink id="lnkSpace" runat="server" NavigateUrl='<%# GetSpaceHomeUrl((int)Eval("PackageID")) %>'>
|
||||||
|
<%# Eval("PackageName") %>
|
||||||
|
</asp:hyperlink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:BoundField HeaderText="gvAddressesItemName" meta:resourcekey="gvAddressesItemName" DataField="ItemName" SortExpression="ItemName" />
|
||||||
|
<asp:BoundField DataField="Comments" HeaderText="gvIPAddressesComments"></asp:BoundField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<asp:ObjectDataSource ID="odsIPAddresses" runat="server" EnablePaging="True"
|
||||||
|
SelectCountMethod="GetIPAddressesPagedCount"
|
||||||
|
SelectMethod="GetIPAddressesPaged"
|
||||||
|
SortParameterName="sortColumn"
|
||||||
|
TypeName="WebsitePanel.Portal.IPAddressesHelper"
|
||||||
|
OnSelected="odsIPAddresses_Selected">
|
||||||
|
<SelectParameters>
|
||||||
|
<asp:Parameter Name="pool" DefaultValue="PhoneNumbers" />
|
||||||
|
<asp:Parameter Name="serverId" DefaultValue="0" />
|
||||||
|
<asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" />
|
||||||
|
<asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" />
|
||||||
|
</SelectParameters>
|
||||||
|
</asp:ObjectDataSource>
|
||||||
|
|
||||||
|
<div class="GridFooter">
|
||||||
|
<div class="Left">
|
||||||
|
<asp:Button id="btnEditSelected" runat="server" Text="Edit Selected..."
|
||||||
|
meta:resourcekey="btnEditSelected" CssClass="SmallButton"
|
||||||
|
CausesValidation="false" onclick="btnEditSelected_Click"></asp:Button>
|
||||||
|
<asp:Button id="btnDeleteSelected" runat="server" Text="Delete Selected"
|
||||||
|
meta:resourcekey="btnDeleteSelected" CssClass="SmallButton"
|
||||||
|
CausesValidation="false" onclick="btnDeleteSelected_Click"></asp:Button>
|
||||||
|
</div>
|
||||||
|
<div class="Right">
|
||||||
|
<asp:Label ID="lblItemsPerPage" runat="server" meta:resourcekey="lblItemsPerPage" Text="Page size:" CssClass="Normal"></asp:Label>
|
||||||
|
<asp:DropDownList ID="ddlItemsPerPage" runat="server" CssClass="NormalTextBox"
|
||||||
|
AutoPostBack="True" onselectedindexchanged="ddlItemsPerPage_SelectedIndexChanged">
|
||||||
|
<asp:ListItem Value="10">10</asp:ListItem>
|
||||||
|
<asp:ListItem Value="20">20</asp:ListItem>
|
||||||
|
<asp:ListItem Value="50">50</asp:ListItem>
|
||||||
|
<asp:ListItem Value="100">100</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,157 @@
|
||||||
|
// 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.Web.UI.WebControls;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
using System.Text;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class PhoneNumbers : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// set display preferences
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
// page size
|
||||||
|
gvIPAddresses.PageSize = UsersHelper.GetDisplayItemsPerPage();
|
||||||
|
ddlItemsPerPage.SelectedValue = gvIPAddresses.PageSize.ToString();
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gvIPAddresses.PageSize = Utils.ParseInt(ddlItemsPerPage.SelectedValue, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
searchBox.AddCriteria("ExternalIP", GetLocalizedString("SearchField.ExternalIP"));
|
||||||
|
searchBox.AddCriteria("ServerName", GetLocalizedString("SearchField.Server"));
|
||||||
|
searchBox.AddCriteria("ItemName", GetLocalizedString("SearchField.ItemName"));
|
||||||
|
searchBox.AddCriteria("Username", GetLocalizedString("SearchField.Username"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
protected void odsIPAddresses_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
ProcessException(e.Exception);
|
||||||
|
this.DisableControls = true;
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetSpaceHomeUrl(int spaceId)
|
||||||
|
{
|
||||||
|
return PortalUtils.GetSpaceHomePageUrl(spaceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void btnAddItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("PoolID", "PhoneNumbers", "add_phone"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ddlItemsPerPage_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
gvIPAddresses.PageSize = Utils.ParseInt(ddlItemsPerPage.SelectedValue, 10);
|
||||||
|
gvIPAddresses.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnEditSelected_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int[] addresses = GetSelectedItems(gvIPAddresses);
|
||||||
|
if (addresses.Length == 0)
|
||||||
|
{
|
||||||
|
ShowWarningMessage("IP_EDIT_LIST_EMPTY_ERROR");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 0; i < addresses.Length; i++)
|
||||||
|
{
|
||||||
|
if (i > 0) sb.Append(",");
|
||||||
|
sb.Append(addresses[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// go to edit screen
|
||||||
|
Response.Redirect(EditUrl("Addresses", sb.ToString(), "edit_phone"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDeleteSelected_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int[] addresses = GetSelectedItems(gvIPAddresses);
|
||||||
|
if (addresses.Length == 0)
|
||||||
|
{
|
||||||
|
ShowWarningMessage("IP_DELETE_LIST_EMPTY_ERROR");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// delete selected IP addresses
|
||||||
|
ResultObject res = ES.Services.Servers.DeleteIPAddresses(addresses);
|
||||||
|
|
||||||
|
if (!res.IsSuccess)
|
||||||
|
{
|
||||||
|
messageBox.ShowMessage(res, "IP_DELETE_RANGE_IP", "IP");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// refresh grid
|
||||||
|
gvIPAddresses.DataBind();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("IP_DELETE_RANGE_IP", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int[] GetSelectedItems(GridView gv)
|
||||||
|
{
|
||||||
|
List<int> items = new List<int>();
|
||||||
|
|
||||||
|
for (int i = 0; i < gv.Rows.Count; i++)
|
||||||
|
{
|
||||||
|
GridViewRow row = gv.Rows[i];
|
||||||
|
CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
|
||||||
|
if (chkSelect.Checked)
|
||||||
|
items.Add((int)gv.DataKeys[i].Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return items.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
134
WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbers.ascx.designer.cs
generated
Normal file
134
WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/PhoneNumbers.ascx.designer.cs
generated
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class PhoneNumbers {
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// btnAddItem 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 btnAddItem;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// searchBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.SearchBox searchBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvIPAddresses 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 gvIPAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// odsIPAddresses 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.ObjectDataSource odsIPAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnEditSelected 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 btnEditSelected;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDeleteSelected 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 btnDeleteSelected;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblItemsPerPage 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 lblItemsPerPage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlItemsPerPage 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 ddlItemsPerPage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PhoneNumbersAddPhoneNumber.ascx.cs" Inherits="WebsitePanel.Portal.PhoneNumbersAddPhoneNumber" %>
|
||||||
|
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<div class="FormBody">
|
||||||
|
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<asp:ValidationSummary ID="validatorsSummary" runat="server"
|
||||||
|
ValidationGroup="EditAddress" ShowMessageBox="True" ShowSummary="False" />
|
||||||
|
|
||||||
|
<asp:CustomValidator ID="consistentAddresses" runat="server" ErrorMessage="You must not mix IPv4 and IPv6 addresses." ValidationGroup="EditAddress" Display="dynamic" ServerValidate="CheckIPAddresses" />
|
||||||
|
|
||||||
|
<table cellspacing="0" cellpadding="3">
|
||||||
|
<tr>
|
||||||
|
<td><asp:Localize ID="locServer" runat="server" meta:resourcekey="locServer" Text="Server:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<asp:dropdownlist id="ddlServer" CssClass="NormalTextBox" runat="server" DataTextField="ServerName" DataValueField="ServerID"></asp:dropdownlist>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="PhoneNumbersRow" runat="server">
|
||||||
|
<td><asp:Localize ID="Localize1" runat="server" meta:resourcekey="lblPhoneNumbers" Text="Phone Numbers:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<asp:TextBox id="startPhone" runat="server" Width="260px" MaxLength="45" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RequiredFieldValidator ID="requireStartPhoneValidator" runat="server" meta:resourcekey="requireStartPhoneValidator"
|
||||||
|
ControlToValidate="startPhone" SetFocusOnError="true" Text="*" Enabled="false" ValidationGroup="EditAddress" ErrorMessage="Enter Phone Number" />
|
||||||
|
|
||||||
|
<asp:Localize ID="Localize2" runat="server" meta:resourcekey="locTo" Text="to"></asp:Localize>
|
||||||
|
|
||||||
|
<asp:TextBox id="endPhone" runat="server" ValidationGroup="EditAddress" Width="260px" MaxLength="45" CssClass="NormalTextBox"/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><asp:Localize ID="lblComments" runat="server" meta:resourcekey="lblComments" Text="Comments:"></asp:Localize></td>
|
||||||
|
<td class="NormalBold"><asp:textbox id="txtComments" Width="250px" CssClass="NormalTextBox" runat="server" Rows="3" TextMode="MultiLine"></asp:textbox></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="FormFooter">
|
||||||
|
<asp:Button ID="btnAdd" runat="server" meta:resourcekey="btnAdd" CssClass="Button1" OnClick="btnAdd_Click" Text="Add" ValidationGroup="EditAddress" />
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1" Text="Cancel" CausesValidation="False" OnClick="btnCancel_Click" />
|
||||||
|
</div>
|
|
@ -0,0 +1,173 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Web.UI.WebControls.WebParts;
|
||||||
|
using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class PhoneNumbersAddPhoneNumber : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
private void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
|
||||||
|
// bind dropdowns
|
||||||
|
try
|
||||||
|
{
|
||||||
|
BindServers();
|
||||||
|
|
||||||
|
// set server if found in request
|
||||||
|
if (PanelRequest.ServerId != 0)
|
||||||
|
Utils.SelectListItem(ddlServer, PanelRequest.ServerId);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("IP_ADD_INIT_FORM", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindServers()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ddlServer.DataSource = ES.Services.Servers.GetServers();
|
||||||
|
ddlServer.DataBind();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Response.Write(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add "select" item
|
||||||
|
ddlServer.Items.Insert(0, new ListItem(GetLocalizedString("Text.NotAssigned"), ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Page.IsValid)
|
||||||
|
{
|
||||||
|
int serverId = Utils.ParseInt(ddlServer.SelectedValue, 0);
|
||||||
|
IPAddressPool pool = IPAddressPool.PhoneNumbers;
|
||||||
|
string comments = txtComments.Text.Trim();
|
||||||
|
|
||||||
|
string start;
|
||||||
|
string end;
|
||||||
|
|
||||||
|
start = startPhone.Text;
|
||||||
|
end = endPhone.Text;
|
||||||
|
|
||||||
|
// add ip address
|
||||||
|
if (end != "" || start.Contains("/"))
|
||||||
|
{
|
||||||
|
string errorKey = "IP_ADD_PHONE_RANGE";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// add IP range
|
||||||
|
ResultObject res = ES.Services.Servers.AddIPAddressesRange(pool, serverId, start, end,
|
||||||
|
"", "", "", comments);
|
||||||
|
if (!res.IsSuccess)
|
||||||
|
{
|
||||||
|
// show error
|
||||||
|
messageBox.ShowMessage(res, errorKey, "IP");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage(errorKey, ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string errorKey = "IP_ADD_PHONE";
|
||||||
|
|
||||||
|
// add single IP
|
||||||
|
try
|
||||||
|
{
|
||||||
|
IntResult res = ES.Services.Servers.AddIPAddress(pool, serverId, start,
|
||||||
|
"", "", "", comments);
|
||||||
|
if (!res.IsSuccess)
|
||||||
|
{
|
||||||
|
messageBox.ShowMessage(res, errorKey, "IP");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage(errorKey, ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Redirect back to the portal home page
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Redirect back to the portal home page
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RedirectBack()
|
||||||
|
{
|
||||||
|
Response.Redirect(NavigateURL("PoolID", "PhoneNumbers"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ddlPools_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
requireStartPhoneValidator.Enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,194 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class PhoneNumbersAddPhoneNumber {
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// validatorsSummary 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 validatorsSummary;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// consistentAddresses 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.CustomValidator consistentAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locServer 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 locServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlServer 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 ddlServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PhoneNumbersRow control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow PhoneNumbersRow;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Localize1 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 Localize1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// startPhone 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 startPhone;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// requireStartPhoneValidator 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 requireStartPhoneValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Localize2 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 Localize2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// endPhone 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 endPhone;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblComments 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 lblComments;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtComments 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 txtComments;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAdd 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 btnAdd;
|
||||||
|
|
||||||
|
/// <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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PhoneNumbersEditPhoneNumber.ascx.cs" Inherits="WebsitePanel.Portal.PhoneNumbersEditPhoneNumber" %>
|
||||||
|
<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<div class="FormBody">
|
||||||
|
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<asp:ValidationSummary ID="validatorsSummary" runat="server"
|
||||||
|
ValidationGroup="EditAddress" ShowMessageBox="True" ShowSummary="False" />
|
||||||
|
|
||||||
|
<table cellspacing="0" cellpadding="3">
|
||||||
|
<tr>
|
||||||
|
<td><asp:Localize ID="locServer" runat="server" meta:resourcekey="locServer" Text="Server:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<asp:dropdownlist id="ddlServer" CssClass="NormalTextBox" runat="server" DataTextField="ServerName" DataValueField="ServerID"></asp:dropdownlist>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="PhoneNumbersRow" runat="server">
|
||||||
|
<td><asp:Localize ID="Localize1" runat="server" meta:resourcekey="lblPhoneNumbers" Text="Phone Numbers:"></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<asp:TextBox id="Phone" runat="server" Width="260px" MaxLength="45" CssClass="NormalTextBox"/>
|
||||||
|
<asp:RequiredFieldValidator ID="requireStartPhoneValidator" runat="server" meta:resourcekey="requireStartPhoneValidator"
|
||||||
|
ControlToValidate="Phone" SetFocusOnError="true" Text="*" Enabled="false" ValidationGroup="EditAddress" ErrorMessage="Enter Phone Number" />
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><asp:Localize ID="lblComments" runat="server" meta:resourcekey="lblComments" Text="Comments:"></asp:Localize></td>
|
||||||
|
<td><asp:textbox id="txtComments" Width="300px" CssClass="NormalTextBox" runat="server" Rows="3" TextMode="MultiLine"></asp:textbox></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="FormFooter">
|
||||||
|
<asp:Button ID="btnUpdate" runat="server" meta:resourcekey="btnUpdate" CssClass="Button1" Text="Update" OnClick="btnUpdate_Click" ValidationGroup="EditAddress" />
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1" Text="Cancel" CausesValidation="False" OnClick="btnCancel_Click" />
|
||||||
|
</div>
|
|
@ -0,0 +1,176 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Web.UI.WebControls.WebParts;
|
||||||
|
using System.Web.UI.HtmlControls;
|
||||||
|
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class PhoneNumbersEditPhoneNumber : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// bind dropdowns
|
||||||
|
BindServers();
|
||||||
|
|
||||||
|
// bind IP
|
||||||
|
BindPhone();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("IP_GET_IP", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindPhone()
|
||||||
|
{
|
||||||
|
int addressId = PanelRequest.AddressID;
|
||||||
|
|
||||||
|
// check if multiple editing
|
||||||
|
if (!String.IsNullOrEmpty(PanelRequest.Addresses))
|
||||||
|
{
|
||||||
|
string[] ids = PanelRequest.Addresses.Split(',');
|
||||||
|
addressId = Utils.ParseInt(ids[0], 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// bind first address
|
||||||
|
IPAddressInfo addr = ES.Services.Servers.GetIPAddress(addressId);
|
||||||
|
|
||||||
|
if (addr != null)
|
||||||
|
{
|
||||||
|
Utils.SelectListItem(ddlServer, addr.ServerId);
|
||||||
|
|
||||||
|
Phone.Text = addr.ExternalIP;
|
||||||
|
txtComments.Text = addr.Comments;
|
||||||
|
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// exit
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindServers()
|
||||||
|
{
|
||||||
|
ddlServer.DataSource = ES.Services.Servers.GetServers();
|
||||||
|
ddlServer.DataBind();
|
||||||
|
ddlServer.Items.Insert(0, new ListItem(GetLocalizedString("Text.NotAssigned"), ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RedirectBack()
|
||||||
|
{
|
||||||
|
Response.Redirect(NavigateURL("PoolID", "PhoneNumbers"));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnUpdate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Page.IsValid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int serverId = Utils.ParseInt(ddlServer.SelectedValue, 0);
|
||||||
|
IPAddressPool pool = IPAddressPool.PhoneNumbers;
|
||||||
|
|
||||||
|
ResultObject res = null;
|
||||||
|
|
||||||
|
// update single IP address
|
||||||
|
if (!String.IsNullOrEmpty(PanelRequest.Addresses))
|
||||||
|
{
|
||||||
|
// update multiple IPs
|
||||||
|
string[] ids = PanelRequest.Addresses.Split(',');
|
||||||
|
int[] addresses = new int[ids.Length];
|
||||||
|
for (int i = 0; i < ids.Length; i++)
|
||||||
|
addresses[i] = Utils.ParseInt(ids[i], 0);
|
||||||
|
|
||||||
|
res = ES.Services.Servers.UpdateIPAddresses(addresses,
|
||||||
|
pool, serverId, "", "", txtComments.Text.Trim());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string address = Phone.Text;
|
||||||
|
|
||||||
|
// update single IP
|
||||||
|
res = ES.Services.Servers.UpdateIPAddress(PanelRequest.AddressID,
|
||||||
|
pool, serverId, address, "", "", "", txtComments.Text.Trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!res.IsSuccess)
|
||||||
|
{
|
||||||
|
messageBox.ShowMessage(res, "IP_UPDATE_IP", "IP");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Redirect back to the portal home page
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("IP_UPDATE_IP", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Redirect back to the portal home page
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ddlPools_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
bool multipleEdit = !String.IsNullOrEmpty(PanelRequest.Addresses);
|
||||||
|
PhoneNumbersRow.Visible = !multipleEdit;
|
||||||
|
requireStartPhoneValidator.Enabled = !multipleEdit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,164 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class PhoneNumbersEditPhoneNumber {
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// validatorsSummary 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 validatorsSummary;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locServer 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 locServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlServer 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 ddlServer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PhoneNumbersRow control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow PhoneNumbersRow;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Localize1 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 Localize1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Phone 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 Phone;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// requireStartPhoneValidator 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 requireStartPhoneValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblComments 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 lblComments;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtComments 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 txtComments;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnUpdate control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnUpdate;
|
||||||
|
|
||||||
|
/// <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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,39 @@
|
||||||
//------------------------------------------------------------------------------
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.ProviderControls {
|
namespace WebsitePanel.Portal.ProviderControls {
|
||||||
|
@ -13,83 +42,92 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
public partial class CRM2011_Settings {
|
public partial class CRM2011_Settings {
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtSqlServer элемент управления.
|
/// txtSqlServer control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtSqlServer;
|
protected global::System.Web.UI.WebControls.TextBox txtSqlServer;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// RequiredFieldValidator1 элемент управления.
|
/// RequiredFieldValidator1 control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtReportingService элемент управления.
|
/// txtReportingService control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtReportingService;
|
protected global::System.Web.UI.WebControls.TextBox txtReportingService;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtDomainName элемент управления.
|
/// txtDomainName control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// 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.TextBox txtDomainName;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// RequiredFieldValidator2 элемент управления.
|
/// RequiredFieldValidator2 control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ddlSchema элемент управления.
|
/// ddlSchema control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.DropDownList ddlSchema;
|
protected global::System.Web.UI.WebControls.DropDownList ddlSchema;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ddlCrmIpAddress элемент управления.
|
/// ddlCrmIpAddress control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.SelectIPAddress ddlCrmIpAddress;
|
protected global::WebsitePanel.Portal.SelectIPAddress ddlCrmIpAddress;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtPort элемент управления.
|
/// txtPort control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtPort;
|
protected global::System.Web.UI.WebControls.TextBox txtPort;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtAppRootDomain элемент управления.
|
/// txtAppRootDomain control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Автоматически создаваемое поле.
|
/// Auto-generated field.
|
||||||
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtAppRootDomain;
|
protected global::System.Web.UI.WebControls.TextBox txtAppRootDomain;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
</Columns>
|
</Columns>
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secPlan" runat="server"
|
<wsp:CollapsiblePanel id="secPlan" runat="server"
|
||||||
TargetControlID="Plan" meta:resourcekey="secPlan" Text="Plan">
|
TargetControlID="Plan" meta:resourcekey="secPlan" Text="Plan">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
|
@ -59,7 +60,8 @@
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secPlanFeatures" runat="server" TargetControlID="PlanFeatures" meta:resourcekey="secPlanFeatures" Text="Plan Features">
|
<wsp:CollapsiblePanel id="secPlanFeatures" runat="server"
|
||||||
|
TargetControlID="PlanFeatures" meta:resourcekey="secPlanFeatures" Text="Plan Features">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
<asp:Panel ID="PlanFeatures" runat="server" Height="0" style="overflow:hidden;">
|
<asp:Panel ID="PlanFeatures" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<table>
|
<table>
|
||||||
|
@ -73,11 +75,6 @@
|
||||||
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
||||||
|
@ -92,6 +89,136 @@
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesFederation" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesFederation" meta:resourcekey="secPlanFeaturesFederation" Text="Federation">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesFederation" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkRemoteUserAccess" runat="server" meta:resourcekey="chkRemoteUserAccess" Text="Remote User access"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkPublicIMConnectivity" runat="server" meta:resourcekey="chkPublicIMConnectivity" Text="Public IM Connectivity"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesArchiving" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesArchiving" meta:resourcekey="secPlanFeaturesArchiving" Text="Archiving">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesArchiving" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locArchivingPolicy" meta:resourcekey="locArchivingPolicy" Text="Archiving Policy:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddArchivingPolicy" runat="server" CssClass="TextBox200"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesMeeting" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesMeeting" meta:resourcekey="secPlanFeaturesMeeting" Text="Meeting">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesMeeting" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkAllowOrganizeMeetingsWithExternalAnonymous" runat="server" meta:resourcekey="chkAllowOrganizeMeetingsWithExternalAnonymous" Text="Allow organize meetings with external anonymous participants"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesTelephony" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesTelephony" meta:resourcekey="secPlanFeaturesTelephony" Text="Telephony">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesTelephony" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephony" meta:resourcekey="locTelephony" Text="Telephony :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephony" runat="server" AutoPostBack="True">
|
||||||
|
<asp:ListItem Value="0" Text="Audio/Video disabled" meta:resourcekey="ddlTelephonyDisabled" />
|
||||||
|
<asp:ListItem Value="1" Text="PC-to-PC only" meta:resourcekey="ddlTelephonyPCtoPCOnly" />
|
||||||
|
<asp:ListItem Value="2" Text="Enterprise voice" meta:resourcekey="ddlTelephonyEnterpriseVoice" />
|
||||||
|
<asp:ListItem Value="3" Text="Remote call control" meta:resourcekey="ddlTelephonyRemoteCallControl" />
|
||||||
|
<asp:ListItem Value="4" Text="Remote call control only" meta:resourcekey="ddlTelephonyRemoteCallControlOnly" />
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephonyProvider" meta:resourcekey="locTelephonyProvider" Text="Telephony Provider :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbTelephoneProvider" runat="server"></asp:TextBox>
|
||||||
|
<asp:Button runat="server" ID="btnAccept" Text="Accept" OnClick="btnAccept_Click" OnClientClick="ShowProgressDialog('Loading...');" ValidationGroup="Accept"/>
|
||||||
|
|
||||||
|
<asp:RequiredFieldValidator id="AcceptRequiredValidator" runat="server" ErrorMessage="Please enter provider name"
|
||||||
|
ControlToValidate="tbTelephoneProvider" Display="Dynamic" ValidationGroup="Accept" SetFocusOnError="true"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locDialPlan" meta:resourcekey="locDialPlan" Text="Dial Plan :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyDialPlanPolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locVoicePolicy" meta:resourcekey="locVoicePolicy" Text="Voice Policy :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyVoicePolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnServerURI">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locServerURI" meta:resourcekey="locServerURI" Text="Server URI :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbServerURI" runat="server"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<%-- Disable because not used
|
||||||
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
||||||
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
|
@ -128,6 +255,7 @@
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
--%>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,52 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
internal static List<LyncUserPlan> list;
|
internal static List<LyncUserPlan> list;
|
||||||
|
|
||||||
|
protected void ddArchivingPolicyUpdate()
|
||||||
|
{
|
||||||
|
string[] archivePolicy = ES.Services.Lync.GetPolicyList(-1, LyncPolicyType.Archiving, null);
|
||||||
|
if (archivePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in archivePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
if (ddArchivingPolicy.Items.FindByValue(policy)==null)
|
||||||
|
ddArchivingPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_PreRender(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (ddArchivingPolicy.Items.Count == 0)
|
||||||
|
ddArchivingPolicyUpdate();
|
||||||
|
|
||||||
|
chkEnterpriseVoice.Enabled = false;
|
||||||
|
chkEnterpriseVoice.Checked = false;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = false;
|
||||||
|
pnServerURI.Visible = false;
|
||||||
|
|
||||||
|
switch (ddTelephony.SelectedIndex)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
pnEnterpriseVoice.Visible = true;
|
||||||
|
chkEnterpriseVoice.Checked = true;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void BindSettings(UserSettings settings)
|
public void BindSettings(UserSettings settings)
|
||||||
{
|
{
|
||||||
|
@ -113,8 +159,7 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Providers.HostedSolution.LyncUserPlan plan = new Providers.HostedSolution.LyncUserPlan();
|
||||||
LyncUserPlan plan = new LyncUserPlan();
|
|
||||||
plan.LyncUserPlanName = txtPlan.Text;
|
plan.LyncUserPlanName = txtPlan.Text;
|
||||||
plan.IsDefault = false;
|
plan.IsDefault = false;
|
||||||
|
|
||||||
|
@ -124,24 +169,21 @@ namespace WebsitePanel.Portal
|
||||||
plan.Conferencing = chkConferencing.Checked;
|
plan.Conferencing = chkConferencing.Checked;
|
||||||
|
|
||||||
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
||||||
if (!plan.EnterpriseVoice)
|
|
||||||
{
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (chkEmergency.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Emergency;
|
|
||||||
else if (chkNational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.National;
|
|
||||||
else if (chkMobile.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Mobile;
|
|
||||||
else if (chkInternational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.International;
|
|
||||||
else
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
}
|
plan.RemoteUserAccess = chkRemoteUserAccess.Checked;
|
||||||
|
plan.PublicIMConnectivity = chkPublicIMConnectivity.Checked;
|
||||||
|
|
||||||
|
plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked;
|
||||||
|
|
||||||
|
plan.Telephony = ddTelephony.SelectedIndex;
|
||||||
|
|
||||||
|
plan.ServerURI = tbServerURI.Text;
|
||||||
|
|
||||||
|
plan.ArchivePolicy = ddArchivingPolicy.SelectedValue;
|
||||||
|
plan.TelephonyDialPlanPolicy = ddTelephonyDialPlanPolicy.SelectedValue;
|
||||||
|
plan.TelephonyVoicePolicy = ddTelephonyVoicePolicy.SelectedValue;
|
||||||
|
|
||||||
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
||||||
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
||||||
|
@ -234,7 +276,7 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
messageBox.ShowErrorMessage("EXCHANGE_DELETE_MAILBOXPLAN");
|
messageBox.ShowErrorMessage("LYNC_DELETE_PLAN");
|
||||||
}
|
}
|
||||||
|
|
||||||
BindPlans();
|
BindPlans();
|
||||||
|
@ -261,7 +303,6 @@ namespace WebsitePanel.Portal
|
||||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
plan = ES.Services.Lync.GetLyncUserPlan(orgs[0].Id, planId);
|
plan = ES.Services.Lync.GetLyncUserPlan(orgs[0].Id, planId);
|
||||||
|
|
||||||
txtPlan.Text = plan.LyncUserPlanName;
|
txtPlan.Text = plan.LyncUserPlanName;
|
||||||
|
@ -271,26 +312,35 @@ namespace WebsitePanel.Portal
|
||||||
chkConferencing.Checked = plan.Conferencing;
|
chkConferencing.Checked = plan.Conferencing;
|
||||||
chkMobility.Checked = plan.Mobility;
|
chkMobility.Checked = plan.Mobility;
|
||||||
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
||||||
switch (plan.VoicePolicy)
|
|
||||||
|
chkRemoteUserAccess.Checked = plan.RemoteUserAccess;
|
||||||
|
chkPublicIMConnectivity.Checked = plan.PublicIMConnectivity;
|
||||||
|
|
||||||
|
chkAllowOrganizeMeetingsWithExternalAnonymous.Checked = plan.AllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
ddTelephony.SelectedIndex = plan.Telephony;
|
||||||
|
|
||||||
|
tbServerURI.Text = plan.ServerURI;
|
||||||
|
|
||||||
|
string planArchivePolicy = "";
|
||||||
|
if (plan.ArchivePolicy != null) planArchivePolicy = plan.ArchivePolicy;
|
||||||
|
string planTelephonyDialPlanPolicy = "";
|
||||||
|
if (plan.TelephonyDialPlanPolicy != null) planTelephonyDialPlanPolicy = plan.TelephonyDialPlanPolicy;
|
||||||
|
string planTelephonyVoicePolicy = "";
|
||||||
|
if (plan.TelephonyVoicePolicy != null) planTelephonyVoicePolicy = plan.TelephonyVoicePolicy;
|
||||||
|
|
||||||
|
ddArchivingPolicyUpdate();
|
||||||
|
ListItem li = ddArchivingPolicy.Items.FindByValue(planArchivePolicy);
|
||||||
|
if (li == null)
|
||||||
{
|
{
|
||||||
case LyncVoicePolicyType.None:
|
li = new System.Web.UI.WebControls.ListItem(planArchivePolicy.Replace("Tag:", ""), planArchivePolicy);
|
||||||
break;
|
ddArchivingPolicy.Items.Add(li);
|
||||||
case LyncVoicePolicyType.Emergency:
|
|
||||||
chkEmergency.Checked = true;
|
|
||||||
break;
|
|
||||||
case LyncVoicePolicyType.National:
|
|
||||||
chkNational.Checked = true;
|
|
||||||
break;
|
|
||||||
case LyncVoicePolicyType.Mobile:
|
|
||||||
chkMobile.Checked = true;
|
|
||||||
break;
|
|
||||||
case LyncVoicePolicyType.International:
|
|
||||||
chkInternational.Checked = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
chkNone.Checked = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
ddArchivingPolicy.SelectedIndex = ddArchivingPolicy.Items.IndexOf(li);
|
||||||
|
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyDialPlanPolicy.Replace("Tag:", ""), planTelephonyDialPlanPolicy));
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyVoicePolicy.Replace("Tag:", ""), planTelephonyVoicePolicy));
|
||||||
|
|
||||||
btnUpdatePlan.Enabled = (string.IsNullOrEmpty(txtPlan.Text)) ? false : true;
|
btnUpdatePlan.Enabled = (string.IsNullOrEmpty(txtPlan.Text)) ? false : true;
|
||||||
|
|
||||||
|
@ -298,7 +348,6 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
messageBox.ShowErrorMessage("EXCHANGE_DELETE_MAILBOXPLAN");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BindPlans();
|
BindPlans();
|
||||||
|
@ -375,7 +424,6 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
plan = new Providers.HostedSolution.LyncUserPlan();
|
plan = new Providers.HostedSolution.LyncUserPlan();
|
||||||
plan.LyncUserPlanId = (int)ViewState["LyncUserPlanID"];
|
plan.LyncUserPlanId = (int)ViewState["LyncUserPlanID"];
|
||||||
|
|
||||||
plan.LyncUserPlanName = txtPlan.Text;
|
plan.LyncUserPlanName = txtPlan.Text;
|
||||||
plan.IsDefault = false;
|
plan.IsDefault = false;
|
||||||
|
|
||||||
|
@ -385,24 +433,22 @@ namespace WebsitePanel.Portal
|
||||||
plan.Conferencing = chkConferencing.Checked;
|
plan.Conferencing = chkConferencing.Checked;
|
||||||
|
|
||||||
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
||||||
if (!plan.EnterpriseVoice)
|
|
||||||
{
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (chkEmergency.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Emergency;
|
|
||||||
else if (chkNational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.National;
|
|
||||||
else if (chkMobile.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Mobile;
|
|
||||||
else if (chkInternational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.International;
|
|
||||||
else
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
}
|
plan.RemoteUserAccess = chkRemoteUserAccess.Checked;
|
||||||
|
plan.PublicIMConnectivity = chkPublicIMConnectivity.Checked;
|
||||||
|
|
||||||
|
plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked;
|
||||||
|
|
||||||
|
plan.Telephony = ddTelephony.SelectedIndex;
|
||||||
|
|
||||||
|
plan.ServerURI = tbServerURI.Text;
|
||||||
|
|
||||||
|
plan.ArchivePolicy = ddArchivingPolicy.SelectedValue;
|
||||||
|
plan.TelephonyDialPlanPolicy = ddTelephonyDialPlanPolicy.SelectedValue;
|
||||||
|
plan.TelephonyVoicePolicy = ddTelephonyVoicePolicy.SelectedValue;
|
||||||
|
|
||||||
|
|
||||||
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
||||||
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
||||||
|
@ -417,11 +463,11 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
messageBox.ShowErrorMessage("EXCHANGE_UPDATEPLANS");
|
messageBox.ShowErrorMessage("LYNC_UPDATEPLANS");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
messageBox.ShowSuccessMessage("EXCHANGE_UPDATEPLANS");
|
messageBox.ShowSuccessMessage("LYNC_UPDATEPLANS");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,6 +549,39 @@ namespace WebsitePanel.Portal
|
||||||
BindPlans();
|
BindPlans();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnAccept_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
string name = tbTelephoneProvider.Text;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(name)) return;
|
||||||
|
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
string[] dialPlan = ES.Services.Lync.GetPolicyList(-1, LyncPolicyType.DialPlan, name);
|
||||||
|
if (dialPlan != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in dialPlan)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
string[] voicePolicy = ES.Services.Lync.GetPolicyList(-1, LyncPolicyType.Voice, name);
|
||||||
|
if (voicePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in voicePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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,
|
||||||
|
@ -34,7 +34,6 @@
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal {
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,15 +138,6 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// chkFederation 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 chkFederation;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkConferencing control.
|
/// chkConferencing control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -167,67 +157,256 @@ namespace WebsitePanel.Portal {
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secEnterpriseVoice control.
|
/// secPlanFeaturesFederation 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 secEnterpriseVoice;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EnterpriseVoice control.
|
/// PlanFeaturesFederation 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 EnterpriseVoice;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNone control.
|
/// chkFederation 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.RadioButton chkNone;
|
protected global::System.Web.UI.WebControls.CheckBox chkFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkEmergency control.
|
/// chkRemoteUserAccess 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.RadioButton chkEmergency;
|
protected global::System.Web.UI.WebControls.CheckBox chkRemoteUserAccess;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNational control.
|
/// chkPublicIMConnectivity 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.RadioButton chkNational;
|
protected global::System.Web.UI.WebControls.CheckBox chkPublicIMConnectivity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkMobile control.
|
/// secPlanFeaturesArchiving 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.RadioButton chkMobile;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesArchiving;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkInternational control.
|
/// PlanFeaturesArchiving 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.RadioButton chkInternational;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesArchiving;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locArchivingPolicy 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 locArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddArchivingPolicy 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 ddArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesMeeting control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesMeeting 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 PlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkAllowOrganizeMeetingsWithExternalAnonymous 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 chkAllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesTelephony 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 PlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephony 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 locTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephony 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 ddTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice 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 pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephonyProvider 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 locTelephonyProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbTelephoneProvider 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 tbTelephoneProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAccept 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 btnAccept;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AcceptRequiredValidator 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 AcceptRequiredValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locDialPlan 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 locDialPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyDialPlanPolicy 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 ddTelephonyDialPlanPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locVoicePolicy 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 locVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyVoicePolicy 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 ddTelephonyVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnServerURI 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 pnServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locServerURI 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 locServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbServerURI 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 tbServerURI;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAddPlan control.
|
/// btnAddPlan control.
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AllocatePackagePhoneNumbers.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.AllocatePackagePhoneNumbers" %>
|
||||||
|
<%@ Register Src="SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<asp:ValidationSummary ID="validatorsSummary" runat="server"
|
||||||
|
ValidationGroup="AddAddress" ShowMessageBox="True" ShowSummary="False" />
|
||||||
|
|
||||||
|
<ul id="ErrorMessagesList" runat="server" visible="false">
|
||||||
|
<li id="EmptyAddressesMessage" runat="server">
|
||||||
|
<asp:Localize ID="locNotEnoughAddresses" runat="server" Text="Not enough..." meta:resourcekey="locNotEnoughAddresses"></asp:Localize>
|
||||||
|
</li>
|
||||||
|
<li id="QuotaReachedMessage" runat="server">
|
||||||
|
<asp:Localize ID="locQuotaReached" runat="server" Text="Quota reached..." meta:resourcekey="locQuotaReached"></asp:Localize>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<asp:UpdatePanel runat="server" ID="AddressesTable" UpdateMode="Conditional">
|
||||||
|
<ContentTemplate>
|
||||||
|
<table cellspacing="5" style="width: 100%;">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:RadioButton ID="radioExternalRandom" runat="server" AutoPostBack="true"
|
||||||
|
meta:resourcekey="radioExternalRandom" Text="Randomly select phone Numbers from the pool"
|
||||||
|
Checked="True" GroupName="ExternalAddress"
|
||||||
|
oncheckedchanged="radioExternalRandom_CheckedChanged" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="AddressesNumberRow" runat="server">
|
||||||
|
<td style="padding-left: 30px;">
|
||||||
|
<asp:Localize ID="locExternalAddresses" runat="server"
|
||||||
|
meta:resourcekey="locExternalAddresses" Text="Number of Phone Numbers:"></asp:Localize>
|
||||||
|
|
||||||
|
<asp:TextBox ID="txtExternalAddressesNumber" runat="server" CssClass="NormalTextBox" Width="50"></asp:TextBox>
|
||||||
|
|
||||||
|
<asp:RequiredFieldValidator ID="ExternalAddressesValidator" runat="server" Text="*" Display="Dynamic"
|
||||||
|
ControlToValidate="txtExternalAddressesNumber" meta:resourcekey="ExternalAddressesValidator" SetFocusOnError="true"
|
||||||
|
ValidationGroup="AddAddress">*</asp:RequiredFieldValidator>
|
||||||
|
|
||||||
|
<asp:Literal ID="litMaxAddresses" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:RadioButton ID="radioExternalSelected" runat="server" AutoPostBack="true"
|
||||||
|
meta:resourcekey="radioExternalSelected" Text="Select PHone Number from the list"
|
||||||
|
GroupName="ExternalAddress"
|
||||||
|
oncheckedchanged="radioExternalSelected_CheckedChanged" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="AddressesListRow" runat="server">
|
||||||
|
<td style="padding-left: 30px;">
|
||||||
|
<asp:ListBox ID="listExternalAddresses" SelectionMode="Multiple" runat="server" Rows="8"
|
||||||
|
CssClass="NormalTextBox" Width="220" style="height:100px;" ></asp:ListBox>
|
||||||
|
<br />
|
||||||
|
<asp:Localize ID="locHoldCtrl" runat="server"
|
||||||
|
meta:resourcekey="locHoldCtrl" Text="* Hold CTRL key to select multiple phone numbers" ></asp:Localize>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</ContentTemplate>
|
||||||
|
</asp:UpdatePanel>
|
||||||
|
<p>
|
||||||
|
<asp:Button ID="btnAdd" runat="server" meta:resourcekey="btnAdd"
|
||||||
|
ValidationGroup="AddAddress" Text="Add" CssClass="Button1"
|
||||||
|
onclick="btnAdd_Click" />
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel"
|
||||||
|
CausesValidation="false" Text="Cancel" CssClass="Button1"
|
||||||
|
onclick="btnCancel_Click" />
|
||||||
|
</p>
|
|
@ -0,0 +1,174 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.UserControls
|
||||||
|
{
|
||||||
|
public partial class AllocatePackagePhoneNumbers : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
private IPAddressPool pool;
|
||||||
|
public IPAddressPool Pool
|
||||||
|
{
|
||||||
|
get { return pool; }
|
||||||
|
set { pool = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string listAddressesControl;
|
||||||
|
public string ListAddressesControl
|
||||||
|
{
|
||||||
|
get { return listAddressesControl; }
|
||||||
|
set { listAddressesControl = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string resourceGroup;
|
||||||
|
public string ResourceGroup
|
||||||
|
{
|
||||||
|
get { return resourceGroup; }
|
||||||
|
set { resourceGroup = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
BindIPAddresses();
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindIPAddresses()
|
||||||
|
{
|
||||||
|
bool vps = (Pool == IPAddressPool.VpsExternalNetwork || Pool == IPAddressPool.VpsManagementNetwork);
|
||||||
|
|
||||||
|
// bind list
|
||||||
|
IPAddressInfo[] ips = ES.Services.Servers.GetUnallottedIPAddresses(PanelSecurity.PackageId, ResourceGroup, Pool);
|
||||||
|
foreach (IPAddressInfo ip in ips)
|
||||||
|
{
|
||||||
|
string txt = ip.ExternalIP;
|
||||||
|
|
||||||
|
// web sites - NAT Address
|
||||||
|
if (!vps && !String.IsNullOrEmpty(ip.InternalIP))
|
||||||
|
txt += "/" + ip.InternalIP;
|
||||||
|
|
||||||
|
// VPS - Gateway Address
|
||||||
|
else if (vps && !String.IsNullOrEmpty(ip.DefaultGateway))
|
||||||
|
txt += "/" + ip.DefaultGateway;
|
||||||
|
|
||||||
|
listExternalAddresses.Items.Add(new ListItem(txt, ip.AddressId.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
int quotaAllowed = -1;
|
||||||
|
string quotaName = (String.Compare(ResourceGroup, ResourceGroups.VPS, true) == 0) ? Quotas.VPS_EXTERNAL_IP_ADDRESSES_NUMBER : Quotas.WEB_IP_ADDRESSES;
|
||||||
|
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||||
|
if (cntx.Quotas.ContainsKey(quotaName))
|
||||||
|
{
|
||||||
|
int quotaAllocated = cntx.Quotas[quotaName].QuotaAllocatedValue;
|
||||||
|
int quotaUsed = cntx.Quotas[quotaName].QuotaUsedValue;
|
||||||
|
|
||||||
|
if (quotaAllocated != -1)
|
||||||
|
quotaAllowed = quotaAllocated - quotaUsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
// bind controls
|
||||||
|
int max = quotaAllowed == -1 ? listExternalAddresses.Items.Count : quotaAllowed;
|
||||||
|
|
||||||
|
txtExternalAddressesNumber.Text = max.ToString();
|
||||||
|
litMaxAddresses.Text = String.Format(GetLocalizedString("litMaxAddresses.Text"), max);
|
||||||
|
|
||||||
|
if (max == 0)
|
||||||
|
{
|
||||||
|
AddressesTable.Visible = false;
|
||||||
|
ErrorMessagesList.Visible = true;
|
||||||
|
EmptyAddressesMessage.Visible = (listExternalAddresses.Items.Count == 0);
|
||||||
|
QuotaReachedMessage.Visible = (quotaAllowed == 0);
|
||||||
|
btnAdd.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<int> ids = new List<int>();
|
||||||
|
foreach (ListItem item in listExternalAddresses.Items)
|
||||||
|
{
|
||||||
|
if (item.Selected)
|
||||||
|
ids.Add(Utils.ParseInt(item.Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
ResultObject res = ES.Services.Servers.AllocatePackageIPAddresses(PanelSecurity.PackageId,
|
||||||
|
ResourceGroup, Pool,
|
||||||
|
radioExternalRandom.Checked,
|
||||||
|
Utils.ParseInt(txtExternalAddressesNumber.Text),
|
||||||
|
ids.ToArray());
|
||||||
|
if (res.IsSuccess)
|
||||||
|
{
|
||||||
|
// return back
|
||||||
|
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// show message
|
||||||
|
messageBox.ShowMessage(res, "VPS_ALLOCATE_EXTERNAL_ADDRESSES_ERROR", "VPS");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("VPS_ALLOCATE_EXTERNAL_ADDRESSES_ERROR", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void radioExternalSelected_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
AddressesNumberRow.Visible = radioExternalRandom.Checked;
|
||||||
|
AddressesListRow.Visible = radioExternalSelected.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void radioExternalRandom_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,243 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class AllocatePackagePhoneNumbers {
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// validatorsSummary 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 validatorsSummary;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ErrorMessagesList control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl ErrorMessagesList;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// EmptyAddressesMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl EmptyAddressesMessage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locNotEnoughAddresses 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 locNotEnoughAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// QuotaReachedMessage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlGenericControl QuotaReachedMessage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locQuotaReached 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 locQuotaReached;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AddressesTable control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.UpdatePanel AddressesTable;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// radioExternalRandom 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.RadioButton radioExternalRandom;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AddressesNumberRow control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow AddressesNumberRow;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locExternalAddresses 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 locExternalAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtExternalAddressesNumber 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 txtExternalAddressesNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ExternalAddressesValidator 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 ExternalAddressesValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litMaxAddresses 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 litMaxAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// radioExternalSelected 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.RadioButton radioExternalSelected;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AddressesListRow control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow AddressesListRow;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// listExternalAddresses 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.ListBox listExternalAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locHoldCtrl 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 locHoldCtrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAdd 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 btnAdd;
|
||||||
|
|
||||||
|
/// <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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
|
<value>Add</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="ExternalAddressesValidator.ErrorMessage" xml:space="preserve">
|
||||||
|
<value>Enter the number of Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="litMaxAddresses.Text" xml:space="preserve">
|
||||||
|
<value>({0} max)</value>
|
||||||
|
</data>
|
||||||
|
<data name="locExternalAddresses.Text" xml:space="preserve">
|
||||||
|
<value>Number of Phone Numbers:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locHoldCtrl.Text" xml:space="preserve">
|
||||||
|
<value>* Hold CTRL key to select multiple phone numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="locNotEnoughAddresses.Text" xml:space="preserve">
|
||||||
|
<value>The pool of Phone Numbers is empty.<br/>Allocate more Phone Numbers on reseller level. If the current hosting space is nested within "System" space then add more server Phone Numbers to the appropriate pool on "Configuration -> Phone Numbers" page.</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Allocate Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="radioExternalRandom.Text" xml:space="preserve">
|
||||||
|
<value>Randomly select Phone Numbers from the pool</value>
|
||||||
|
</data>
|
||||||
|
<data name="radioExternalSelected.Text" xml:space="preserve">
|
||||||
|
<value>Select Phone Numbers from the list</value>
|
||||||
|
</data>
|
||||||
|
<data name="locQuotaReached.Text" xml:space="preserve">
|
||||||
|
<value>Phone Numbers quota has been reached.</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,165 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="btnAllocateAddress.Text" xml:space="preserve">
|
||||||
|
<value>Allocate...</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDeallocateAddresses.Text" xml:space="preserve">
|
||||||
|
<value>Deallocate Selected</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddresses.Empty" xml:space="preserve">
|
||||||
|
<value>No Phone Numbers have been allocated to this hosting space.</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesDefaultGateway.HeaderText" xml:space="preserve">
|
||||||
|
<value>Gateway</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesIPAddress.HeaderText" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesItemName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Item Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesPrimary.HeaderText" xml:space="preserve">
|
||||||
|
<value>Primary</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesSpace.HeaderText" xml:space="preserve">
|
||||||
|
<value>Space</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesSubnetMask.HeaderText" xml:space="preserve">
|
||||||
|
<value>Subnet Mask</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvAddressesUser.HeaderText" xml:space="preserve">
|
||||||
|
<value>User</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.DefaultGateway" xml:space="preserve">
|
||||||
|
<value>Default Gateway</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.IPAddress" xml:space="preserve">
|
||||||
|
<value>Phone Numbers</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.ItemName" xml:space="preserve">
|
||||||
|
<value>Item Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchField.Username" xml:space="preserve">
|
||||||
|
<value>User Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDeallocateAddresses.OnClientClick" xml:space="preserve">
|
||||||
|
<value>return confirm('Deallocate selected Phone Numbers from hosting space?');</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,87 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PackagePhoneNumbers.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.PackagePhoneNumbers" %>
|
||||||
|
<%@ Register Src="SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
|
||||||
|
<script language="javascript">
|
||||||
|
function SelectAllCheckboxes(box) {
|
||||||
|
var state = box.checked;
|
||||||
|
var elm = box.parentElement.parentElement.parentElement.parentElement.getElementsByTagName("INPUT");
|
||||||
|
for (i = 0; i < elm.length; i++)
|
||||||
|
if (elm[i].type == "checkbox" && elm[i].id != box.id && elm[i].checked != state && !elm[i].disabled)
|
||||||
|
elm[i].checked = state;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<div class="FormButtonsBarClean">
|
||||||
|
<div class="FormButtonsBarCleanLeft">
|
||||||
|
<asp:Button ID="btnAllocateAddress" runat="server" meta:resourcekey="btnAllocateAddress"
|
||||||
|
Text="Allocate IP Addresses" CssClass="Button1" CausesValidation="False"
|
||||||
|
onclick="btnAllocateAddress_Click" />
|
||||||
|
</div>
|
||||||
|
<div class="FormButtonsBarCleanRight">
|
||||||
|
<wsp:SearchBox ID="searchBox" runat="server" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<asp:GridView ID="gvAddresses" runat="server" AutoGenerateColumns="False"
|
||||||
|
Width="100%" EmptyDataText="gvAddresses" CssSelectorClass="NormalGridView"
|
||||||
|
AllowPaging="True" AllowSorting="True" DataSourceID="odsExternalAddressesPaged"
|
||||||
|
onrowdatabound="gvAddresses_RowDataBound" DataKeyNames="PackageAddressID" >
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField>
|
||||||
|
<HeaderTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:SelectAllCheckboxes(this);" />
|
||||||
|
</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:CheckBox ID="chkSelect" runat="server" />
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
|
||||||
|
<asp:BoundField HeaderText="gvAddressesIPAddress" meta:resourcekey="gvAddressesIPAddress"
|
||||||
|
DataField="ExternalIP" SortExpression="ExternalIP" />
|
||||||
|
|
||||||
|
<asp:TemplateField HeaderText="gvAddressesItemName" meta:resourcekey="gvAddressesItemName" SortExpression="ItemName">
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:hyperlink id="lnkEdit" runat="server" NavigateUrl='<%# GetItemEditUrl(Eval("ItemID").ToString()) %>'>
|
||||||
|
<%# Eval("ItemName") %>
|
||||||
|
</asp:hyperlink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
|
||||||
|
<asp:TemplateField HeaderText="gvAddressesSpace" meta:resourcekey="gvAddressesSpace" SortExpression="PackageName" >
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:hyperlink id="lnkSpace" runat="server" NavigateUrl='<%# GetSpaceHomeUrl(Eval("PackageID").ToString()) %>'>
|
||||||
|
<%# Eval("PackageName") %>
|
||||||
|
</asp:hyperlink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField HeaderText="gvAddressesUser" meta:resourcekey="gvAddressesUser" SortExpression="Username" >
|
||||||
|
<ItemTemplate>
|
||||||
|
<%# Eval("UserName") %>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<asp:ObjectDataSource ID="odsExternalAddressesPaged" runat="server" EnablePaging="True"
|
||||||
|
SelectCountMethod="GetPackageIPAddressesCount"
|
||||||
|
SelectMethod="GetPackageIPAddresses"
|
||||||
|
SortParameterName="sortColumn"
|
||||||
|
TypeName="WebsitePanel.Portal.VirtualMachinesHelper"
|
||||||
|
OnSelected="odsExternalAddressesPaged_Selected"
|
||||||
|
onselecting="odsExternalAddressesPaged_Selecting">
|
||||||
|
<SelectParameters>
|
||||||
|
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="0" />
|
||||||
|
<asp:Parameter Name="pool" DefaultValue="0" />
|
||||||
|
<asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" />
|
||||||
|
<asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" />
|
||||||
|
</SelectParameters>
|
||||||
|
</asp:ObjectDataSource>
|
||||||
|
|
||||||
|
<div style="margin-top:4px;">
|
||||||
|
<asp:Button ID="btnDeallocateAddresses" runat="server" meta:resourcekey="btnDeallocateAddresses"
|
||||||
|
Text="Deallocate selected" CssClass="SmallButton" CausesValidation="False"
|
||||||
|
onclick="btnDeallocateAddresses_Click" />
|
||||||
|
</div>
|
|
@ -0,0 +1,172 @@
|
||||||
|
// Copyright (c) 2012, Outercurve Foundation.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
|
// list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.UserControls
|
||||||
|
{
|
||||||
|
public partial class PackagePhoneNumbers : WebsitePanelControlBase
|
||||||
|
{
|
||||||
|
private bool spaceOwner;
|
||||||
|
|
||||||
|
private IPAddressPool pool;
|
||||||
|
public IPAddressPool Pool
|
||||||
|
{
|
||||||
|
get { return pool; }
|
||||||
|
set { pool = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string editItemControl;
|
||||||
|
public string EditItemControl
|
||||||
|
{
|
||||||
|
get { return editItemControl; }
|
||||||
|
set { editItemControl = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string spaceHomeControl;
|
||||||
|
public string SpaceHomeControl
|
||||||
|
{
|
||||||
|
get { return spaceHomeControl; }
|
||||||
|
set { spaceHomeControl = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private string allocateAddressesControl;
|
||||||
|
public string AllocateAddressesControl
|
||||||
|
{
|
||||||
|
get { return allocateAddressesControl; }
|
||||||
|
set { allocateAddressesControl = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool ManageAllowed
|
||||||
|
{
|
||||||
|
get { return ViewState["ManageAllowed"] != null ? (bool)ViewState["ManageAllowed"] : false; }
|
||||||
|
set { ViewState["ManageAllowed"] = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
searchBox.AddCriteria("ExternalIP", GetLocalizedString("SearchField.IPAddress"));
|
||||||
|
searchBox.AddCriteria("ItemName", GetLocalizedString("SearchField.ItemName"));
|
||||||
|
searchBox.AddCriteria("Username", GetLocalizedString("SearchField.Username"));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isUserSelected = PanelSecurity.SelectedUser.Role == WebsitePanel.EnterpriseServer.UserRole.User;
|
||||||
|
bool isUserLogged = PanelSecurity.EffectiveUser.Role == WebsitePanel.EnterpriseServer.UserRole.User;
|
||||||
|
spaceOwner = PanelSecurity.EffectiveUserId == PanelSecurity.SelectedUserId;
|
||||||
|
|
||||||
|
gvAddresses.Columns[3].Visible = !isUserSelected; // space
|
||||||
|
gvAddresses.Columns[4].Visible = !isUserSelected; // user
|
||||||
|
|
||||||
|
// managing external network permissions
|
||||||
|
gvAddresses.Columns[0].Visible = !isUserLogged && ManageAllowed;
|
||||||
|
btnAllocateAddress.Visible = !isUserLogged && !spaceOwner && ManageAllowed && !String.IsNullOrEmpty(AllocateAddressesControl);
|
||||||
|
btnDeallocateAddresses.Visible = !isUserLogged && ManageAllowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetItemEditUrl(string itemID)
|
||||||
|
{
|
||||||
|
return HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), EditItemControl,
|
||||||
|
"ItemID=" + itemID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetSpaceHomeUrl(string spaceId)
|
||||||
|
{
|
||||||
|
return HostModule.EditUrl("SpaceID", spaceId, SpaceHomeControl);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsExternalAddressesPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("EXCHANGE_GET_MAILBOXES", e.Exception);
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnAllocateAddress_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), AllocateAddressesControl));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void gvAddresses_RowDataBound(object sender, GridViewRowEventArgs e)
|
||||||
|
{
|
||||||
|
PackageIPAddress item = e.Row.DataItem as PackageIPAddress;
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
// checkbox
|
||||||
|
CheckBox chkSelect = e.Row.FindControl("chkSelect") as CheckBox;
|
||||||
|
chkSelect.Enabled = (!spaceOwner || (PanelSecurity.PackageId != item.PackageId)) && item.ItemId == 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDeallocateAddresses_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
List<int> ids = new List<int>();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<int> items = new List<int>();
|
||||||
|
for (int i = 0; i < gvAddresses.Rows.Count; i++)
|
||||||
|
{
|
||||||
|
GridViewRow row = gvAddresses.Rows[i];
|
||||||
|
CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
|
||||||
|
if (chkSelect.Checked)
|
||||||
|
items.Add((int)gvAddresses.DataKeys[i].Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if at least one is selected
|
||||||
|
if (items.Count == 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowWarningMessage("PHONE_EDIT_LIST_EMPTY_ERROR");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ResultObject res = ES.Services.Servers.DeallocatePackageIPAddresses(PanelSecurity.PackageId, items.ToArray());
|
||||||
|
messageBox.ShowMessage(res, "DEALLOCATE_SPACE_PHONE_NUMBER", "VPS");
|
||||||
|
gvAddresses.DataBind();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("DEALLOCATE_SPACE_PHONE_NUMBER", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsExternalAddressesPaged_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
|
||||||
|
{
|
||||||
|
e.InputParameters["pool"] = Pool;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class PackagePhoneNumbers {
|
||||||
|
|
||||||
|
/// <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>
|
||||||
|
/// btnAllocateAddress 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 btnAllocateAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// searchBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.SearchBox searchBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvAddresses 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 gvAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// odsExternalAddressesPaged 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.ObjectDataSource odsExternalAddressesPaged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDeallocateAddresses 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 btnDeallocateAddresses;
|
||||||
|
}
|
||||||
|
}
|
|
@ -38,7 +38,6 @@ namespace WebsitePanel.Portal
|
||||||
{
|
{
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -461,6 +461,20 @@
|
||||||
<Compile Include="UserControls\OrgIdPolicyEditor.ascx.designer.cs">
|
<Compile Include="UserControls\OrgIdPolicyEditor.ascx.designer.cs">
|
||||||
<DependentUpon>OrgIdPolicyEditor.ascx</DependentUpon>
|
<DependentUpon>OrgIdPolicyEditor.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="UserControls\PackagePhoneNumbers.ascx.cs">
|
||||||
|
<DependentUpon>PackagePhoneNumbers.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UserControls\PackagePhoneNumbers.ascx.designer.cs">
|
||||||
|
<DependentUpon>PackagePhoneNumbers.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UserControls\AllocatePackagePhoneNumbers.ascx.cs">
|
||||||
|
<DependentUpon>AllocatePackagePhoneNumbers.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UserControls\AllocatePackagePhoneNumbers.ascx.designer.cs">
|
||||||
|
<DependentUpon>AllocatePackagePhoneNumbers.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="VPSForPC\MonitoringPage.aspx.cs">
|
<Compile Include="VPSForPC\MonitoringPage.aspx.cs">
|
||||||
<DependentUpon>MonitoringPage.aspx</DependentUpon>
|
<DependentUpon>MonitoringPage.aspx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -3879,6 +3893,41 @@
|
||||||
<Compile Include="WebsitesSSL.ascx.designer.cs">
|
<Compile Include="WebsitesSSL.ascx.designer.cs">
|
||||||
<DependentUpon>WebsitesSSL.ascx</DependentUpon>
|
<DependentUpon>WebsitesSSL.ascx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="LyncPhoneNumbers.ascx.cs">
|
||||||
|
<DependentUpon>LyncPhoneNumbers.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LyncPhoneNumbers.ascx.designer.cs">
|
||||||
|
<DependentUpon>LyncPhoneNumbers.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LyncAllocatePhoneNumbers.ascx.cs">
|
||||||
|
<DependentUpon>LyncAllocatePhoneNumbers.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LyncAllocatePhoneNumbers.ascx.designer.cs">
|
||||||
|
<DependentUpon>LyncAllocatePhoneNumbers.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PhoneNumbers.ascx.cs">
|
||||||
|
<DependentUpon>PhoneNumbers.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PhoneNumbers.ascx.designer.cs">
|
||||||
|
<DependentUpon>PhoneNumbers.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PhoneNumbersAddPhoneNumber.ascx.cs">
|
||||||
|
<DependentUpon>PhoneNumbersAddPhoneNumber.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PhoneNumbersAddPhoneNumber.ascx.designer.cs">
|
||||||
|
<DependentUpon>PhoneNumbersAddPhoneNumber.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PhoneNumbersEditPhoneNumber.ascx.cs">
|
||||||
|
<DependentUpon>PhoneNumbersEditPhoneNumber.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="PhoneNumbersEditPhoneNumber.ascx.designer.cs">
|
||||||
|
<DependentUpon>PhoneNumbersEditPhoneNumber.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
<Content Include="ApplyEnableHardQuotaFeature.ascx" />
|
||||||
|
@ -3918,6 +3967,8 @@
|
||||||
<Content Include="SettingsLyncUserPlansPolicy.ascx" />
|
<Content Include="SettingsLyncUserPlansPolicy.ascx" />
|
||||||
<Content Include="UserControls\EditFeedsList.ascx" />
|
<Content Include="UserControls\EditFeedsList.ascx" />
|
||||||
<Content Include="UserControls\OrgIdPolicyEditor.ascx" />
|
<Content Include="UserControls\OrgIdPolicyEditor.ascx" />
|
||||||
|
<Content Include="UserControls\PackagePhoneNumbers.ascx" />
|
||||||
|
<Content Include="UserControls\AllocatePackagePhoneNumbers.ascx" />
|
||||||
<Content Include="VPSForPC\MonitoringPage.aspx" />
|
<Content Include="VPSForPC\MonitoringPage.aspx" />
|
||||||
<Content Include="VPSForPC\VdcAccountVLanAdd.ascx" />
|
<Content Include="VPSForPC\VdcAccountVLanAdd.ascx" />
|
||||||
<Content Include="VPSForPC\VdcAccountVLanNetwork.ascx" />
|
<Content Include="VPSForPC\VdcAccountVLanNetwork.ascx" />
|
||||||
|
@ -3980,6 +4031,11 @@
|
||||||
<Content Include="UserControls\UsernameControl.ascx" />
|
<Content Include="UserControls\UsernameControl.ascx" />
|
||||||
<Content Include="WebSitesHeliconZooControl.ascx" />
|
<Content Include="WebSitesHeliconZooControl.ascx" />
|
||||||
<Content Include="WebsitesSSL.ascx" />
|
<Content Include="WebsitesSSL.ascx" />
|
||||||
|
<Content Include="LyncPhoneNumbers.ascx" />
|
||||||
|
<Content Include="LyncAllocatePhoneNumbers.ascx" />
|
||||||
|
<Content Include="PhoneNumbers.ascx" />
|
||||||
|
<Content Include="PhoneNumbersAddPhoneNumber.ascx" />
|
||||||
|
<Content Include="PhoneNumbersEditPhoneNumber.ascx" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="App_LocalResources\BandwidthReport.ascx.resx">
|
<Content Include="App_LocalResources\BandwidthReport.ascx.resx">
|
||||||
|
@ -5061,6 +5117,12 @@
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="UserControls\App_LocalResources\OrgIdPolicyEditor.ascx.resx" />
|
<Content Include="UserControls\App_LocalResources\OrgIdPolicyEditor.ascx.resx" />
|
||||||
|
<Content Include="UserControls\App_LocalResources\PackagePhoneNumbers.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="UserControls\App_LocalResources\AllocatePackagePhoneNumbers.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
<None Include="Resources\Windows2008_Settings.ascx.resx" />
|
<None Include="Resources\Windows2008_Settings.ascx.resx" />
|
||||||
<Content Include="App_LocalResources\WebSitesHeliconZooControl.ascx.resx" />
|
<Content Include="App_LocalResources\WebSitesHeliconZooControl.ascx.resx" />
|
||||||
<Content Include="ExchangeServer\App_LocalResources\ExchangeDisclaimers.ascx.resx">
|
<Content Include="ExchangeServer\App_LocalResources\ExchangeDisclaimers.ascx.resx">
|
||||||
|
@ -5072,6 +5134,15 @@
|
||||||
<Content Include="ExchangeServer\App_LocalResources\ExchangeDistributionListMemberOf.ascx.resx" />
|
<Content Include="ExchangeServer\App_LocalResources\ExchangeDistributionListMemberOf.ascx.resx" />
|
||||||
<Content Include="ExchangeServer\App_LocalResources\ExchangeMailboxMemberOf.ascx.resx" />
|
<Content Include="ExchangeServer\App_LocalResources\ExchangeMailboxMemberOf.ascx.resx" />
|
||||||
<Content Include="ExchangeServer\App_LocalResources\OrganizationUserMemberOf.ascx.resx" />
|
<Content Include="ExchangeServer\App_LocalResources\OrganizationUserMemberOf.ascx.resx" />
|
||||||
|
<Content Include="App_LocalResources\LyncPhoneNumbers.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="App_LocalResources\LyncAllocatePhoneNumbers.ascx.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Content>
|
||||||
|
<Content Include="App_LocalResources\PhoneNumbers.ascx.resx" />
|
||||||
|
<Content Include="App_LocalResources\PhoneNumbersAddPhoneNumber.ascx.resx" />
|
||||||
|
<Content Include="App_LocalResources\PhoneNumbersEditPhoneNumber.ascx.resx" />
|
||||||
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue