Commit Changes from Robvde

This commit is contained in:
Virtuworks 2012-08-07 11:43:17 -04:00
commit e270bdc1eb
6 changed files with 171 additions and 87 deletions

View file

@ -1069,17 +1069,6 @@ END
GO GO
ALTER VIEW [dbo].[UsersDetailed]
AS
SELECT U.UserID, U.RoleID, U.StatusID, U.LoginStatusId, U.SubscriberNumber, U.FailedLogins, U.OwnerID, U.Created, U.Changed, U.IsDemo, U.Comments, U.IsPeer, U.Username, U.FirstName, U.LastName, U.Email,
U.CompanyName, U.FirstName + ' ' + U.LastName AS FullName, UP.Username AS OwnerUsername, UP.FirstName AS OwnerFirstName,
UP.LastName AS OwnerLastName, UP.RoleID AS OwnerRoleID, UP.FirstName + ' ' + UP.LastName AS OwnerFullName, UP.Email AS OwnerEmail, UP.RoleID AS Expr1,
(SELECT COUNT(PackageID) AS Expr1
FROM dbo.Packages AS P
WHERE (UserID = U.UserID)) AS PackagesNumber, U.EcommerceEnabled
FROM dbo.Users AS U LEFT OUTER JOIN
dbo.Users AS UP ON U.OwnerID = UP.UserID
GO
ALTER PROCEDURE [dbo].[AddDnsRecord] ALTER PROCEDURE [dbo].[AddDnsRecord]
@ -1830,6 +1819,19 @@ END
GO GO
ALTER VIEW [dbo].[UsersDetailed]
AS
SELECT U.UserID, U.RoleID, U.StatusID, U.LoginStatusId, U.SubscriberNumber, U.FailedLogins, U.OwnerID, U.Created, U.Changed, U.IsDemo, U.Comments, U.IsPeer, U.Username, U.FirstName, U.LastName, U.Email,
U.CompanyName, U.FirstName + ' ' + U.LastName AS FullName, UP.Username AS OwnerUsername, UP.FirstName AS OwnerFirstName,
UP.LastName AS OwnerLastName, UP.RoleID AS OwnerRoleID, UP.FirstName + ' ' + UP.LastName AS OwnerFullName, UP.Email AS OwnerEmail, UP.RoleID AS Expr1,
(SELECT COUNT(PackageID) AS Expr1
FROM dbo.Packages AS P
WHERE (UserID = U.UserID)) AS PackagesNumber, U.EcommerceEnabled
FROM dbo.Users AS U LEFT OUTER JOIN
dbo.Users AS UP ON U.OwnerID = UP.UserID
GO
/****** Object: Table [dbo].[ExchangeOrganizations] ******/ /****** Object: Table [dbo].[ExchangeOrganizations] ******/
ALTER TABLE [dbo].[ExchangeOrganizations] ALTER COLUMN [OrganizationID] [nvarchar](128) COLLATE Latin1_General_CI_AS NOT NULL ALTER TABLE [dbo].[ExchangeOrganizations] ALTER COLUMN [OrganizationID] [nvarchar](128) COLLATE Latin1_General_CI_AS NOT NULL
GO GO
@ -2533,6 +2535,54 @@ GO
ALTER PROCEDURE [dbo].[GetUserByExchangeOrganizationIdInternally]
(
@ItemID int
)
AS
SELECT
U.UserID,
U.RoleID,
U.StatusID,
U.SubscriberNumber,
U.LoginStatusId,
U.FailedLogins,
U.OwnerID,
U.Created,
U.Changed,
U.IsDemo,
U.Comments,
U.IsPeer,
U.Username,
U.Password,
U.FirstName,
U.LastName,
U.Email,
U.SecondaryEmail,
U.Address,
U.City,
U.State,
U.Country,
U.Zip,
U.PrimaryPhone,
U.SecondaryPhone,
U.Fax,
U.InstantMessenger,
U.HtmlMail,
U.CompanyName,
U.EcommerceEnabled,
U.[AdditionalParams]
FROM Users AS U
WHERE U.UserID IN (SELECT UserID FROM Packages WHERE PackageID IN (
SELECT PackageID FROM ServiceItems WHERE ItemID = @ItemID))
RETURN
GO

View file

@ -156,16 +156,44 @@ namespace WebsitePanel.EnterpriseServer
try try
{ {
Organization org = (Organization)PackageController.GetPackageItem(itemId); Organization org = (Organization)PackageController.GetPackageItem(itemId);
if (org == null) if (org == null)
return null; return null;
OrganizationStatistics stats = ObjectUtils.FillObjectFromDataReader<OrganizationStatistics>( OrganizationStatistics stats = new OrganizationStatistics();
DataProvider.GetExchangeOrganizationStatistics(itemId)); UserInfo user = ObjectUtils.FillObjectFromDataReader<UserInfo>(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId));
List<PackageInfo> Packages = PackageController.GetPackages(user.UserId);
if ((Packages != null) & (Packages.Count > 0))
{
foreach (PackageInfo Package in Packages)
{
List<Organization> orgs = null;
orgs = GetExchangeOrganizations(Package.PackageId, false);
if ((orgs != null) & (orgs.Count > 0))
{
foreach (Organization o in orgs)
{
OrganizationStatistics tempStats = ObjectUtils.FillObjectFromDataReader<OrganizationStatistics>(DataProvider.GetExchangeOrganizationStatistics(o.Id));
stats.CreatedMailboxes += tempStats.CreatedMailboxes;
stats.CreatedContacts += tempStats.CreatedContacts;
stats.CreatedDistributionLists += tempStats.CreatedDistributionLists;
stats.CreatedDomains += tempStats.CreatedDomains;
stats.CreatedPublicFolders += tempStats.CreatedPublicFolders;
stats.UsedDiskSpace += tempStats.UsedDiskSpace;
}
}
}
}
// disk space // disk space
//stats.UsedDiskSpace = org.DiskSpace; //stats.UsedDiskSpace = org.DiskSpace;
// allocated quotas // allocated quotas
PackageContext cntx = PackageController.GetPackageContext(org.PackageId); PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
stats.AllocatedMailboxes = cntx.Quotas[Quotas.EXCHANGE2007_MAILBOXES].QuotaAllocatedValue; stats.AllocatedMailboxes = cntx.Quotas[Quotas.EXCHANGE2007_MAILBOXES].QuotaAllocatedValue;

View file

@ -891,45 +891,91 @@ namespace WebsitePanel.EnterpriseServer
if (org == null) if (org == null)
return null; return null;
OrganizationStatistics stats = ObjectUtils.FillObjectFromDataReader<OrganizationStatistics>( OrganizationStatistics stats = new OrganizationStatistics();
DataProvider.GetOrganizationStatistics(itemId));
UserInfo user = ObjectUtils.FillObjectFromDataReader<UserInfo>(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId));
List<PackageInfo> Packages = PackageController.GetPackages(user.UserId);
if ((Packages != null) & (Packages.Count > 0))
{
foreach (PackageInfo Package in Packages)
{
List<Organization> orgs = null;
orgs = ExchangeServerController.GetExchangeOrganizations(Package.PackageId, false);
if ((orgs != null) & (orgs.Count > 0))
{
foreach (Organization o in orgs)
{
OrganizationStatistics tempStats = ObjectUtils.FillObjectFromDataReader<OrganizationStatistics>(DataProvider.GetOrganizationStatistics(o.Id));
stats.CreatedUsers += tempStats.CreatedUsers;
stats.CreatedDomains += tempStats.CreatedDomains;
PackageContext cntxTmp = PackageController.GetPackageContext(org.PackageId);
if (cntxTmp.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
{
SharePointSiteCollectionListPaged sharePointStats = HostedSharePointServerController.GetSiteCollectionsPaged(org.PackageId, org.Id, string.Empty, string.Empty, string.Empty, 0, 0);
stats.CreatedSharePointSiteCollections += sharePointStats.TotalRowCount;
}
if (cntxTmp.Groups.ContainsKey(ResourceGroups.HostedCRM))
{
stats.CreatedCRMUsers += CRMController.GetCRMUsersCount(org.Id, string.Empty, string.Empty).Value;
}
if (cntxTmp.Groups.ContainsKey(ResourceGroups.BlackBerry))
{
stats.CreatedBlackBerryUsers += BlackBerryController.GetBlackBerryUsersCount(org.Id, string.Empty, string.Empty).Value;
}
if (cntxTmp.Groups.ContainsKey(ResourceGroups.OCS))
{
stats.CreatedOCSUsers += OCSController.GetOCSUsersCount(org.Id, string.Empty, string.Empty).Value;
}
if (cntxTmp.Groups.ContainsKey(ResourceGroups.Lync))
{
stats.CreatedLyncUsers += LyncController.GetLyncUsersCount(org.Id).Value;
}
}
}
}
}
// disk space // disk space
// allocated quotas // allocated quotas
PackageContext cntx = PackageController.GetPackageContext(org.PackageId); PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
stats.AllocatedUsers = cntx.Quotas[Quotas.ORGANIZATION_USERS].QuotaAllocatedValue; stats.AllocatedUsers = cntx.Quotas[Quotas.ORGANIZATION_USERS].QuotaAllocatedValue;
stats.AllocatedDomains = cntx.Quotas[Quotas.ORGANIZATION_DOMAINS].QuotaAllocatedValue; stats.AllocatedDomains = cntx.Quotas[Quotas.ORGANIZATION_DOMAINS].QuotaAllocatedValue;
if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint)) if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
{ {
SharePointSiteCollectionListPaged sharePointStats = HostedSharePointServerController.GetSiteCollectionsPaged(org.PackageId, org.Id, string.Empty, string.Empty, string.Empty, 0, 0); SharePointSiteCollectionListPaged sharePointStats = HostedSharePointServerController.GetSiteCollectionsPaged(org.PackageId, org.Id, string.Empty, string.Empty, string.Empty, 0, 0);
stats.CreatedSharePointSiteCollections = sharePointStats.TotalRowCount;
stats.AllocatedSharePointSiteCollections = cntx.Quotas[Quotas.HOSTED_SHAREPOINT_SITES].QuotaAllocatedValue; stats.AllocatedSharePointSiteCollections = cntx.Quotas[Quotas.HOSTED_SHAREPOINT_SITES].QuotaAllocatedValue;
} }
if (cntx.Groups.ContainsKey(ResourceGroups.HostedCRM)) if (cntx.Groups.ContainsKey(ResourceGroups.HostedCRM))
{ {
stats.CreatedCRMUsers = CRMController.GetCRMUsersCount(org.Id, string.Empty, string.Empty).Value;
stats.AllocatedCRMUsers = cntx.Quotas[Quotas.CRM_USERS].QuotaAllocatedValue; stats.AllocatedCRMUsers = cntx.Quotas[Quotas.CRM_USERS].QuotaAllocatedValue;
} }
if (cntx.Groups.ContainsKey(ResourceGroups.BlackBerry)) if (cntx.Groups.ContainsKey(ResourceGroups.BlackBerry))
{ {
stats.CreatedBlackBerryUsers = BlackBerryController.GetBlackBerryUsersCount(org.Id, string.Empty, string.Empty).Value;
stats.AllocatedBlackBerryUsers = cntx.Quotas[Quotas.BLACKBERRY_USERS].QuotaAllocatedValue; stats.AllocatedBlackBerryUsers = cntx.Quotas[Quotas.BLACKBERRY_USERS].QuotaAllocatedValue;
} }
if (cntx.Groups.ContainsKey(ResourceGroups.OCS)) if (cntx.Groups.ContainsKey(ResourceGroups.OCS))
{ {
stats.CreatedOCSUsers = OCSController.GetOCSUsersCount(org.Id, string.Empty, string.Empty).Value;
stats.AllocatedOCSUsers = cntx.Quotas[Quotas.OCS_USERS].QuotaAllocatedValue; stats.AllocatedOCSUsers = cntx.Quotas[Quotas.OCS_USERS].QuotaAllocatedValue;
} }
if (cntx.Groups.ContainsKey(ResourceGroups.Lync)) if (cntx.Groups.ContainsKey(ResourceGroups.Lync))
{ {
stats.CreatedLyncUsers = LyncController.GetLyncUsersCount(org.Id).Value;
stats.AllocatedLyncUsers = cntx.Quotas[Quotas.LYNC_USERS].QuotaAllocatedValue; stats.AllocatedLyncUsers = cntx.Quotas[Quotas.LYNC_USERS].QuotaAllocatedValue;
} }

View file

@ -33,7 +33,7 @@
<tr> <tr>
<td class="FormLabel150"><asp:Localize ID="locOrganizationID" runat="server" meta:resourcekey="locOrganizationID" Text="Organization ID: *"></asp:Localize></td> <td class="FormLabel150"><asp:Localize ID="locOrganizationID" runat="server" meta:resourcekey="locOrganizationID" Text="Organization ID: *"></asp:Localize></td>
<td> <td>
<asp:TextBox ID="txtOrganizationID" runat="server" CssClass="TextBox100" <asp:TextBox ID="txtOrganizationID" runat="server" CssClass="HugeTextBox200"
MaxLength="128"></asp:TextBox> MaxLength="128"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequiretxtOrganizationID" runat="server" meta:resourcekey="valRequiretxtOrganizationID" ControlToValidate="txtOrganizationID" <asp:RequiredFieldValidator ID="valRequiretxtOrganizationID" runat="server" meta:resourcekey="valRequiretxtOrganizationID" ControlToValidate="txtOrganizationID"
ErrorMessage="Enter Organization ID" ValidationGroup="CreateOrganization" Display="Dynamic" Text="*" SetFocusOnError="true"></asp:RequiredFieldValidator> ErrorMessage="Enter Organization ID" ValidationGroup="CreateOrganization" Display="Dynamic" Text="*" SetFocusOnError="true"></asp:RequiredFieldValidator>

View file

@ -48,8 +48,16 @@ namespace WebsitePanel.Portal.ExchangeServer
gvOrgs.Columns[2].Visible = gvOrgs.Columns[3].Visible = gvOrgs.Columns[4].Visible = false; gvOrgs.Columns[2].Visible = gvOrgs.Columns[3].Visible = gvOrgs.Columns[4].Visible = false;
btnCreate.Enabled = false; btnCreate.Enabled = false;
} }
else
if (gvOrgs.Rows.Count > 0) btnCreate.Enabled = false;
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATIONS))
{
btnCreate.Enabled = !(cntx.Quotas[Quotas.ORGANIZATIONS].QuotaAllocatedValue <= gvOrgs.Rows.Count);
}
//else
//if (gvOrgs.Rows.Count > 0) btnCreate.Enabled = false;
} }
@ -103,6 +111,13 @@ namespace WebsitePanel.Portal.ExchangeServer
gvOrgs.DataBind(); gvOrgs.DataBind();
orgsQuota.BindQuota(); orgsQuota.BindQuota();
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
if (cntx.Quotas.ContainsKey(Quotas.ORGANIZATIONS))
{
btnCreate.Enabled = !(cntx.Quotas[Quotas.ORGANIZATIONS].QuotaAllocatedValue <= gvOrgs.Rows.Count);
}
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -276,10 +276,10 @@ namespace WebsitePanel.Portal
break; break;
case "RestampItem": case "RestampItem":
RestampMailboxes(mailboxPlanId); RestampMailboxes(mailboxPlanId, mailboxPlanId);
break; break;
case "StampUnassigned": case "StampUnassigned":
StampUnAssigned(mailboxPlanId); RestampMailboxes(-1, mailboxPlanId);
break; break;
} }
@ -420,7 +420,7 @@ namespace WebsitePanel.Portal
} }
private void RestampMailboxes(int mailboxPlanId) private void RestampMailboxes(int sourceMailboxPlanId, int destinationMailboxPlanId)
{ {
UserInfo[] UsersInfo = ES.Services.Users.GetUsers(PanelSecurity.SelectedUserId, true); UserInfo[] UsersInfo = ES.Services.Users.GetUsers(PanelSecurity.SelectedUserId, true);
@ -444,12 +444,12 @@ namespace WebsitePanel.Portal
{ {
if (!string.IsNullOrEmpty(org.GlobalAddressList)) if (!string.IsNullOrEmpty(org.GlobalAddressList))
{ {
ExchangeAccount[] Accounts = ES.Services.ExchangeServer.GetExchangeAccountByMailboxPlanId(org.Id, mailboxPlanId); ExchangeAccount[] Accounts = ES.Services.ExchangeServer.GetExchangeAccountByMailboxPlanId(org.Id, sourceMailboxPlanId);
foreach (ExchangeAccount a in Accounts) foreach (ExchangeAccount a in Accounts)
{ {
txtStatus.Text = "Completed"; txtStatus.Text = "Completed";
int result = ES.Services.ExchangeServer.SetExchangeMailboxPlan(org.Id, a.AccountId, mailboxPlanId); int result = ES.Services.ExchangeServer.SetExchangeMailboxPlan(org.Id, a.AccountId, destinationMailboxPlanId);
if (result < 0) if (result < 0)
{ {
BindMailboxPlans(); BindMailboxPlans();
@ -475,61 +475,6 @@ namespace WebsitePanel.Portal
} }
private void StampUnAssigned(int mailboxPlanId)
{
UserInfo[] UsersInfo = ES.Services.Users.GetUsers(PanelSecurity.SelectedUserId, true);
try
{
foreach (UserInfo ui in UsersInfo)
{
PackageInfo[] Packages = ES.Services.Packages.GetPackages(ui.UserId);
if ((Packages != null) & (Packages.GetLength(0) > 0))
{
foreach (PackageInfo Package in Packages)
{
Providers.HostedSolution.Organization[] orgs = null;
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(Package.PackageId, false);
if ((orgs != null) & (orgs.GetLength(0) > 0))
{
foreach (Organization org in orgs)
{
if (!string.IsNullOrEmpty(org.GlobalAddressList))
{
ExchangeAccount[] Accounts = ES.Services.ExchangeServer.GetExchangeAccountByMailboxPlanId(org.Id, -1);
foreach (ExchangeAccount a in Accounts)
{
txtStatus.Text = "Completed";
int result = ES.Services.ExchangeServer.SetExchangeMailboxPlan(org.Id, a.AccountId, mailboxPlanId);
if (result < 0)
{
BindMailboxPlans();
txtStatus.Text = "Error: " + a.AccountName;
messageBox.ShowErrorMessage("EXCHANGE_FAILED_TO_STAMP");
return;
}
}
}
}
}
}
}
}
messageBox.ShowSuccessMessage("EXCHANGE_STAMPMAILBOXES");
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("EXCHANGE_FAILED_TO_STAMP", ex);
}
BindMailboxPlans();
}
} }
} }