Added phone numbers in the hosted organization. part 2.

This commit is contained in:
dev_amdtel 2013-11-21 17:03:56 +04:00
parent a735808a04
commit ce04966e91
22 changed files with 4642 additions and 4442 deletions

View file

@ -2401,3 +2401,188 @@ INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName]
VALUES(1501, 45, N'RemoteDesktopServices2012', N'Remote Desktop Services Windows 2012', N'WebsitePanel.Providers.RemoteDesktopServices.Windows2012,WebsitePanel.Providers.RemoteDesktopServices.Windows2012', N'RDS', 1) VALUES(1501, 45, N'RemoteDesktopServices2012', N'Remote Desktop Services Windows 2012', N'WebsitePanel.Providers.RemoteDesktopServices.Windows2012,WebsitePanel.Providers.RemoteDesktopServices.Windows2012', N'RDS', 1)
END END
GO GO
-- Added phone numbers in the hosted organization.
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='PackageIPAddresses' AND COLS.name='OrgID')
BEGIN
ALTER TABLE [dbo].[PackageIPAddresses] ADD
[OrgID] [int] NULL
END
GO
ALTER PROCEDURE [dbo].[AllocatePackageIPAddresses]
(
@PackageID int,
@OrgID int,
@xml ntext
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @idoc int
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
-- delete
DELETE FROM PackageIPAddresses
FROM PackageIPAddresses AS PIP
INNER JOIN OPENXML(@idoc, '/items/item', 1) WITH
(
AddressID int '@id'
) as PV ON PIP.AddressID = PV.AddressID
-- insert
INSERT INTO dbo.PackageIPAddresses
(
PackageID,
OrgID,
AddressID
)
SELECT
@PackageID,
@OrgID,
AddressID
FROM OPENXML(@idoc, '/items/item', 1) WITH
(
AddressID int '@id'
) as PV
-- remove document
exec sp_xml_removedocument @idoc
END
GO
ALTER PROCEDURE [dbo].[GetPackageIPAddresses]
(
@PackageID int,
@OrgID int,
@FilterColumn nvarchar(50) = '',
@FilterValue nvarchar(50) = '',
@SortColumn nvarchar(50),
@StartRow int,
@MaximumRows int,
@PoolID int = 0,
@Recursive bit = 0
)
AS
BEGIN
-- start
DECLARE @condition nvarchar(700)
SET @condition = '
((@Recursive = 0 AND PA.PackageID = @PackageID)
OR (@Recursive = 1 AND dbo.CheckPackageParent(@PackageID, PA.PackageID) = 1))
AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
AND (@OrgID = 0 OR @OrgID <> 0 AND PA.OrgID = @OrgID)
'
IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
AND @FilterValue <> '' AND @FilterValue IS NOT NULL
SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
IF @SortColumn IS NULL OR @SortColumn = ''
SET @SortColumn = 'IP.ExternalIP ASC'
DECLARE @sql nvarchar(3500)
set @sql = '
SELECT COUNT(PA.PackageAddressID)
FROM dbo.PackageIPAddresses PA
INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID
INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID
INNER JOIN dbo.Users U ON U.UserID = P.UserID
LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID
WHERE ' + @condition + '
DECLARE @Addresses AS TABLE
(
PackageAddressID int
);
WITH TempItems AS (
SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row,
PA.PackageAddressID
FROM dbo.PackageIPAddresses PA
INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID
INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID
INNER JOIN dbo.Users U ON U.UserID = P.UserID
LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID
WHERE ' + @condition + '
)
INSERT INTO @Addresses
SELECT PackageAddressID FROM TempItems
WHERE TempItems.Row BETWEEN @StartRow + 1 and @StartRow + @MaximumRows
SELECT
PA.PackageAddressID,
PA.AddressID,
IP.ExternalIP,
IP.InternalIP,
IP.SubnetMask,
IP.DefaultGateway,
PA.ItemID,
SI.ItemName,
PA.PackageID,
P.PackageName,
P.UserID,
U.UserName,
PA.IsPrimary
FROM @Addresses AS TA
INNER JOIN dbo.PackageIPAddresses AS PA ON TA.PackageAddressID = PA.PackageAddressID
INNER JOIN dbo.IPAddresses AS IP ON PA.AddressID = IP.AddressID
INNER JOIN dbo.Packages P ON PA.PackageID = P.PackageID
INNER JOIN dbo.Users U ON U.UserID = P.UserID
LEFT JOIN ServiceItems SI ON PA.ItemId = SI.ItemID
'
print @sql
exec sp_executesql @sql, N'@PackageID int, @OrgID int, @StartRow int, @MaximumRows int, @Recursive bit, @PoolID int',
@PackageID, @OrgID, @StartRow, @MaximumRows, @Recursive, @PoolID
END
GO
ALTER PROCEDURE [dbo].[GetPackageUnassignedIPAddresses]
(
@ActorID int,
@PackageID int,
@OrgID int,
@PoolID int = 0
)
AS
BEGIN
SELECT
PIP.PackageAddressID,
IP.AddressID,
IP.ExternalIP,
IP.InternalIP,
IP.ServerID,
IP.PoolID,
PIP.IsPrimary,
IP.SubnetMask,
IP.DefaultGateway
FROM PackageIPAddresses AS PIP
INNER JOIN IPAddresses AS IP ON PIP.AddressID = IP.AddressID
WHERE
PIP.ItemID IS NULL
AND PIP.PackageID = @PackageID
AND (@PoolID = 0 OR @PoolID <> 0 AND IP.PoolID = @PoolID)
AND (@OrgID = 0 OR @OrgID <> 0 AND PIP.OrgID = @OrgID)
AND dbo.CheckActorPackageRights(@ActorID, PIP.PackageID) = 1
ORDER BY IP.DefaultGateway, IP.ExternalIP
END
GO

View file

@ -3205,23 +3205,25 @@ namespace WebsitePanel.EnterpriseServer
} }
public static void AllocatePackageIPAddresses(int packageId, string xml) public static void AllocatePackageIPAddresses(int packageId, int orgId, string xml)
{ {
SqlParameter[] param = new[] SqlParameter[] param = new[]
{ {
new SqlParameter("@PackageID", packageId), new SqlParameter("@PackageID", packageId),
new SqlParameter("@OrgID", orgId),
new SqlParameter("@xml", xml) new SqlParameter("@xml", xml)
}; };
ExecuteLongNonQuery("AllocatePackageIPAddresses", param); ExecuteLongNonQuery("AllocatePackageIPAddresses", param);
} }
public static IDataReader GetPackageIPAddresses(int packageId, int poolId, string filterColumn, string filterValue, public static IDataReader GetPackageIPAddresses(int packageId, int orgId, int poolId, string filterColumn, string filterValue,
string sortColumn, int startRow, int maximumRows, bool recursive) string sortColumn, int startRow, int maximumRows, bool recursive)
{ {
IDataReader reader = SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, IDataReader reader = SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
"GetPackageIPAddresses", "GetPackageIPAddresses",
new SqlParameter("@PackageID", packageId), new SqlParameter("@PackageID", packageId),
new SqlParameter("@OrgID", orgId),
new SqlParameter("@PoolId", poolId), new SqlParameter("@PoolId", poolId),
new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)), new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)),
new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)), new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)),
@ -3266,12 +3268,13 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
#region VPS - External Network Adapter #region VPS - External Network Adapter
public static IDataReader GetPackageUnassignedIPAddresses(int actorId, int packageId, int poolId) public static IDataReader GetPackageUnassignedIPAddresses(int actorId, int packageId, int orgId, int poolId)
{ {
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
"GetPackageUnassignedIPAddresses", "GetPackageUnassignedIPAddresses",
new SqlParameter("@ActorID", actorId), new SqlParameter("@ActorID", actorId),
new SqlParameter("@PackageID", packageId), new SqlParameter("@PackageID", packageId),
new SqlParameter("@OrgID", orgId),
new SqlParameter("@PoolId", poolId)); new SqlParameter("@PoolId", poolId));
} }

View file

@ -1161,13 +1161,13 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
#region Package IP Addresses #region Package IP Addresses
public static PackageIPAddressesPaged GetPackageIPAddresses(int packageId, IPAddressPool pool, public static PackageIPAddressesPaged GetPackageIPAddresses(int packageId, int orgId, IPAddressPool pool,
string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, bool recursive) string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, bool recursive)
{ {
PackageIPAddressesPaged result = new PackageIPAddressesPaged(); PackageIPAddressesPaged result = new PackageIPAddressesPaged();
// get reader // get reader
IDataReader reader = DataProvider.GetPackageIPAddresses(packageId, (int)pool, filterColumn, filterValue, sortColumn, startRow, maximumRows, recursive); IDataReader reader = DataProvider.GetPackageIPAddresses(packageId, orgId, (int)pool, filterColumn, filterValue, sortColumn, startRow, maximumRows, recursive);
// number of items = first data reader // number of items = first data reader
reader.Read(); reader.Read();
@ -1190,10 +1190,15 @@ namespace WebsitePanel.EnterpriseServer
DataProvider.GetUnallottedIPAddresses(packageId, serviceId, (int)pool)); DataProvider.GetUnallottedIPAddresses(packageId, serviceId, (int)pool));
} }
public static List<PackageIPAddress> GetPackageUnassignedIPAddresses(int packageId, IPAddressPool pool) public static List<PackageIPAddress> GetPackageUnassignedIPAddresses(int packageId, int orgId, IPAddressPool pool)
{ {
return ObjectUtils.CreateListFromDataReader<PackageIPAddress>( return ObjectUtils.CreateListFromDataReader<PackageIPAddress>(
DataProvider.GetPackageUnassignedIPAddresses(SecurityContext.User.UserId, packageId, (int)pool)); DataProvider.GetPackageUnassignedIPAddresses(SecurityContext.User.UserId, packageId, orgId, (int)pool));
}
public static List<PackageIPAddress> GetPackageUnassignedIPAddresses(int packageId, IPAddressPool pool)
{
return GetPackageUnassignedIPAddresses(packageId, 0, pool);
} }
public static void AllocatePackageIPAddresses(int packageId, int[] addressId) public static void AllocatePackageIPAddresses(int packageId, int[] addressId)
@ -1202,10 +1207,10 @@ namespace WebsitePanel.EnterpriseServer
string xml = PrepareIPsXML(addressId); string xml = PrepareIPsXML(addressId);
// save to database // save to database
DataProvider.AllocatePackageIPAddresses(packageId, xml); DataProvider.AllocatePackageIPAddresses(packageId, 0, xml);
} }
public static ResultObject AllocatePackageIPAddresses(int packageId, string groupName, IPAddressPool pool, bool allocateRandom, int addressesNumber, int[] addressId) public static ResultObject AllocatePackageIPAddresses(int packageId, int orgId, string groupName, IPAddressPool pool, bool allocateRandom, int addressesNumber, int[] addressId)
{ {
#region Check account and space statuses #region Check account and space statuses
// create result object // create result object
@ -1282,7 +1287,7 @@ namespace WebsitePanel.EnterpriseServer
// save to database // save to database
try try
{ {
DataProvider.AllocatePackageIPAddresses(packageId, xml); DataProvider.AllocatePackageIPAddresses(packageId, orgId, xml);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -1329,7 +1334,7 @@ namespace WebsitePanel.EnterpriseServer
} }
// allocate // allocate
return AllocatePackageIPAddresses(packageId, groupName, pool, return AllocatePackageIPAddresses(packageId, 0, groupName, pool,
true, number, new int[0]); true, number, new int[0]);
} }

View file

@ -386,24 +386,24 @@ namespace WebsitePanel.EnterpriseServer
} }
[WebMethod] [WebMethod]
public PackageIPAddressesPaged GetPackageIPAddresses(int packageId, IPAddressPool pool, public PackageIPAddressesPaged GetPackageIPAddresses(int packageId, int orgId, IPAddressPool pool,
string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, bool recursive) string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, bool recursive)
{ {
return ServerController.GetPackageIPAddresses(packageId, pool, return ServerController.GetPackageIPAddresses(packageId, orgId, pool,
filterColumn, filterValue, sortColumn, startRow, maximumRows, recursive); filterColumn, filterValue, sortColumn, startRow, maximumRows, recursive);
} }
[WebMethod] [WebMethod]
public List<PackageIPAddress> GetPackageUnassignedIPAddresses(int packageId, IPAddressPool pool) public List<PackageIPAddress> GetPackageUnassignedIPAddresses(int packageId, int orgId, IPAddressPool pool)
{ {
return ServerController.GetPackageUnassignedIPAddresses(packageId, pool); return ServerController.GetPackageUnassignedIPAddresses(packageId, orgId, pool);
} }
[WebMethod] [WebMethod]
public ResultObject AllocatePackageIPAddresses(int packageId, string groupName, IPAddressPool pool, bool allocateRandom, int addressesNumber, public ResultObject AllocatePackageIPAddresses(int packageId,int orgId, string groupName, IPAddressPool pool, bool allocateRandom, int addressesNumber,
int[] addressId) int[] addressId)
{ {
return ServerController.AllocatePackageIPAddresses(packageId, groupName, pool, allocateRandom, return ServerController.AllocatePackageIPAddresses(packageId, orgId, groupName, pool, allocateRandom,
addressesNumber, addressId); addressesNumber, addressId);
} }

View file

@ -108,7 +108,7 @@ namespace WebsitePanel.Portal
public PackageIPAddress[] GetPackageIPAddresses(int packageId, IPAddressPool pool, string filterColumn, string filterValue, public PackageIPAddress[] GetPackageIPAddresses(int packageId, IPAddressPool pool, string filterColumn, string filterValue,
string sortColumn, int maximumRows, int startRowIndex) string sortColumn, int maximumRows, int startRowIndex)
{ {
packageAddresses = ES.Services.Servers.GetPackageIPAddresses(packageId, pool, packageAddresses = ES.Services.Servers.GetPackageIPAddresses(packageId, 0, pool,
filterColumn, filterValue, sortColumn, startRowIndex, maximumRows, true); filterColumn, filterValue, sortColumn, startRowIndex, maximumRows, true);
return packageAddresses.Items; return packageAddresses.Items;
} }

View file

@ -130,7 +130,7 @@ namespace WebsitePanel.Portal
public PackageIPAddress[] GetPackageIPAddresses(int packageId, IPAddressPool pool, string filterColumn, string filterValue, public PackageIPAddress[] GetPackageIPAddresses(int packageId, IPAddressPool pool, string filterColumn, string filterValue,
string sortColumn, int maximumRows, int startRowIndex) string sortColumn, int maximumRows, int startRowIndex)
{ {
packageAddresses = ES.Services.Servers.GetPackageIPAddresses(packageId, pool, packageAddresses = ES.Services.Servers.GetPackageIPAddresses(packageId, 0, pool,
filterColumn, filterValue, sortColumn, startRowIndex, maximumRows, true); filterColumn, filterValue, sortColumn, startRowIndex, maximumRows, true);
return packageAddresses.Items; return packageAddresses.Items;
} }
@ -139,6 +139,19 @@ namespace WebsitePanel.Portal
{ {
return packageAddresses.Count; return packageAddresses.Count;
} }
public PackageIPAddress[] GetPackageIPAddresses(int packageId, int orgId, IPAddressPool pool, string filterColumn, string filterValue,
string sortColumn, int maximumRows, int startRowIndex)
{
packageAddresses = ES.Services.Servers.GetPackageIPAddresses(packageId, orgId, pool,
filterColumn, filterValue, sortColumn, startRowIndex, maximumRows, true);
return packageAddresses.Items;
}
public int GetPackageIPAddressesCount(int packageId, int orgId, IPAddressPool pool, string filterColumn, string filterValue)
{
return packageAddresses.Count;
}
#endregion #endregion
#region Package Private IP Addresses #region Package Private IP Addresses

View file

@ -32,7 +32,7 @@
<wsp:AllocatePackagePhoneNumbers id="allocatePhoneNumbers" runat="server" <wsp:AllocatePackagePhoneNumbers id="allocatePhoneNumbers" runat="server"
Pool="PhoneNumbers" Pool="PhoneNumbers"
ResourceGroup="Web" ResourceGroup="Web"
ListAddressesControl="" /> ListAddressesControl="lync_phonenumbers" />
</div> </div>
</div> </div>
</div> </div>

View file

@ -57,7 +57,7 @@ namespace WebsitePanel.Portal.Lync
private void BindPhoneNumbers() private void BindPhoneNumbers()
{ {
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.PhoneNumbers); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, PanelRequest.ItemID, IPAddressPool.PhoneNumbers);
if (ips.Length > 0) if (ips.Length > 0)
{ {

View file

@ -52,7 +52,7 @@ namespace WebsitePanel.Portal.Lync
private void BindPhoneNumbers() private void BindPhoneNumbers()
{ {
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.PhoneNumbers); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, PanelRequest.ItemID, IPAddressPool.PhoneNumbers);
if (ips.Length > 0) if (ips.Length > 0)
{ {

View file

@ -27,7 +27,7 @@
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle"></asp:Localize> <asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle"></asp:Localize>
</div> </div>
<div class="FormBody"> <div class="FormBody">
<wsp:PackagePhoneNumbers id="webAddresses" runat="server" <wsp:PackagePhoneNumbers id="phoneNumbers" runat="server"
Pool="PhoneNumbers" Pool="PhoneNumbers"
EditItemControl="" EditItemControl=""
SpaceHomeControl="" SpaceHomeControl=""
@ -43,7 +43,7 @@
<table cellspacing="6"> <table cellspacing="6">
<tr> <tr>
<td><asp:Localize ID="locIPQuota" runat="server" meta:resourcekey="locIPQuota" Text="Number of Phone Numbes:"></asp:Localize></td> <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="Lync.PhoneNumbers" /></td> <td><wsp:Quota ID="phoneQuota" runat="server" QuotaName="Lync.PhoneNumbers" /></td>
</tr> </tr>
</table> </table>

View file

@ -56,5 +56,50 @@ namespace WebsitePanel.Portal.Lync {
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части. /// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Localize locTitle; protected global::System.Web.UI.WebControls.Localize locTitle;
/// <summary>
/// phoneNumbers элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.PackagePhoneNumbers phoneNumbers;
/// <summary>
/// secQuotas элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secQuotas;
/// <summary>
/// QuotasPanel элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel QuotasPanel;
/// <summary>
/// locIPQuota элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.Localize locIPQuota;
/// <summary>
/// phoneQuota элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::WebsitePanel.Portal.Quota phoneQuota;
} }
} }

View file

@ -36,7 +36,7 @@ using WebsitePanel.Providers.Common;
namespace WebsitePanel.Portal.UserControls namespace WebsitePanel.Portal.UserControls
{ {
public partial class AllocatePackagePhoneNumbers : WebsitePanelControlBase public partial class AllocatePackagePhoneNumbers : WebsitePanelModuleBase
{ {
private IPAddressPool pool; private IPAddressPool pool;
public IPAddressPool Pool public IPAddressPool Pool
@ -129,6 +129,7 @@ namespace WebsitePanel.Portal.UserControls
} }
ResultObject res = ES.Services.Servers.AllocatePackageIPAddresses(PanelSecurity.PackageId, ResultObject res = ES.Services.Servers.AllocatePackageIPAddresses(PanelSecurity.PackageId,
PanelRequest.ItemID,
ResourceGroup, Pool, ResourceGroup, Pool,
radioExternalRandom.Checked, radioExternalRandom.Checked,
Utils.ParseInt(txtExternalAddressesNumber.Text), Utils.ParseInt(txtExternalAddressesNumber.Text),
@ -136,7 +137,8 @@ namespace WebsitePanel.Portal.UserControls
if (res.IsSuccess) if (res.IsSuccess)
{ {
// return back // return back
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl)); Response.Redirect(HostModule.EditUrl("ItemID", PanelRequest.ItemID.ToString(), ListAddressesControl,
PortalUtils.SPACE_ID_PARAM + "=" + PanelSecurity.PackageId));
} }
else else
{ {

View file

@ -129,6 +129,7 @@ namespace WebsitePanel.Portal.UserControls
} }
ResultObject res = ES.Services.Servers.AllocatePackageIPAddresses(PanelSecurity.PackageId, ResultObject res = ES.Services.Servers.AllocatePackageIPAddresses(PanelSecurity.PackageId,
0,
ResourceGroup, Pool, ResourceGroup, Pool,
radioExternalRandom.Checked, radioExternalRandom.Checked,
Utils.ParseInt(txtExternalAddressesNumber.Text), Utils.ParseInt(txtExternalAddressesNumber.Text),

View file

@ -74,6 +74,7 @@
onselecting="odsExternalAddressesPaged_Selecting"> onselecting="odsExternalAddressesPaged_Selecting">
<SelectParameters> <SelectParameters>
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="0" /> <asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="0" />
<asp:QueryStringParameter Name="orgId" QueryStringField="ItemID" DefaultValue="0" />
<asp:Parameter Name="pool" DefaultValue="0" /> <asp:Parameter Name="pool" DefaultValue="0" />
<asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" /> <asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" />
<asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" /> <asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" />

View file

@ -118,7 +118,8 @@ namespace WebsitePanel.Portal.UserControls
protected void btnAllocateAddress_Click(object sender, EventArgs e) protected void btnAllocateAddress_Click(object sender, EventArgs e)
{ {
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), AllocateAddressesControl)); Response.Redirect(HostModule.EditUrl("ItemID", PanelRequest.ItemID.ToString(), AllocateAddressesControl,
PortalUtils.SPACE_ID_PARAM + "=" + PanelSecurity.PackageId));
} }
protected void gvAddresses_RowDataBound(object sender, GridViewRowEventArgs e) protected void gvAddresses_RowDataBound(object sender, GridViewRowEventArgs e)

View file

@ -1,39 +1,10 @@
// 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.
// Runtime Version:2.0.50727.3074
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls { namespace WebsitePanel.Portal.UserControls {
@ -42,62 +13,56 @@ namespace WebsitePanel.Portal.UserControls {
public partial class PackagePhoneNumbers { public partial class PackagePhoneNumbers {
/// <summary> /// <summary>
/// messageBox control. /// messageBox элемент управления.
/// </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>
/// btnAllocateAddress control. /// btnAllocateAddress элемент управления.
/// </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 btnAllocateAddress; protected global::System.Web.UI.WebControls.Button btnAllocateAddress;
/// <summary> /// <summary>
/// searchBox control. /// searchBox элемент управления.
/// </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.SearchBox searchBox; protected global::WebsitePanel.Portal.SearchBox searchBox;
/// <summary> /// <summary>
/// gvAddresses control. /// gvAddresses элемент управления.
/// </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.GridView gvAddresses; protected global::System.Web.UI.WebControls.GridView gvAddresses;
/// <summary> /// <summary>
/// odsExternalAddressesPaged control. /// odsExternalAddressesPaged элемент управления.
/// </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.ObjectDataSource odsExternalAddressesPaged; protected global::System.Web.UI.WebControls.ObjectDataSource odsExternalAddressesPaged;
/// <summary> /// <summary>
/// btnDeallocateAddresses control. /// btnDeallocateAddresses элемент управления.
/// </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 btnDeallocateAddresses; protected global::System.Web.UI.WebControls.Button btnDeallocateAddresses;
} }

View file

@ -117,7 +117,7 @@ namespace WebsitePanel.Portal.VPS
if (PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPS_EXTERNAL_NETWORK_ENABLED)) if (PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPS_EXTERNAL_NETWORK_ENABLED))
{ {
// bind list // bind list
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.VpsExternalNetwork); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, 0, IPAddressPool.VpsExternalNetwork);
foreach (PackageIPAddress ip in ips) foreach (PackageIPAddress ip in ips)
{ {
string txt = ip.ExternalIP; string txt = ip.ExternalIP;

View file

@ -51,7 +51,7 @@ namespace WebsitePanel.Portal.VPS
private void BindExternalIPAddresses() private void BindExternalIPAddresses()
{ {
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.VpsExternalNetwork); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, 0, IPAddressPool.VpsExternalNetwork);
foreach (PackageIPAddress ip in ips) foreach (PackageIPAddress ip in ips)
{ {
string txt = ip.ExternalIP; string txt = ip.ExternalIP;

View file

@ -51,7 +51,7 @@ namespace WebsitePanel.Portal.VPSForPC
private void BindExternalIPAddresses() private void BindExternalIPAddresses()
{ {
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.VpsExternalNetwork); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, 0, IPAddressPool.VpsExternalNetwork);
foreach (PackageIPAddress ip in ips) foreach (PackageIPAddress ip in ips)
{ {
string txt = ip.ExternalIP; string txt = ip.ExternalIP;

View file

@ -92,7 +92,7 @@ namespace WebsitePanel.Portal
{ {
ddlIpAddresses.Items.Add(new ListItem("<Select IP>", "")); ddlIpAddresses.Items.Add(new ListItem("<Select IP>", ""));
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, IPAddressPool.WebSites); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(PanelSecurity.PackageId, 0, IPAddressPool.WebSites);
foreach (PackageIPAddress ip in ips) foreach (PackageIPAddress ip in ips)
{ {
string fullIP = ip.ExternalIP; string fullIP = ip.ExternalIP;

View file

@ -179,7 +179,7 @@ namespace WebsitePanel.Portal
// bind unassigned IP addresses // bind unassigned IP addresses
ddlIpAddresses.Items.Clear(); ddlIpAddresses.Items.Clear();
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(site.PackageId, IPAddressPool.WebSites); PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(site.PackageId, 0, IPAddressPool.WebSites);
foreach (PackageIPAddress ip in ips) foreach (PackageIPAddress ip in ips)
{ {
string fullIP = ip.ExternalIP; string fullIP = ip.ExternalIP;