diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql
index deda7025..f3cb07d2 100644
--- a/WebsitePanel/Database/update_db.sql
+++ b/WebsitePanel/Database/update_db.sql
@@ -9024,3 +9024,112 @@ VALUES(1205, 24, N'CRM', N'Hosted MS CRM 2015', N'WebsitePanel.Providers.HostedS
END
GO
+-- RDS Setup Instructions
+
+IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'CC' )
+BEGIN
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'RDSSetupLetter', N'CC', N'support@HostingCompany.com')
+END
+GO
+IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'From' )
+BEGIN
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'RDSSetupLetter', N'From', N'support@HostingCompany.com')
+END
+GO
+
+DECLARE @RDSSetupLetterHtmlBody nvarchar(2500)
+
+Set @RDSSetupLetterHtmlBody = N'
+
+ RDS Setup Information
+
+
+
+
+';
+
+IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'HtmlBody' )
+BEGIN
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'RDSSetupLetter', N'HtmlBody', @RDSSetupLetterHtmlBody)
+END
+ELSE
+UPDATE [dbo].[UserSettings] SET [PropertyValue] = @RDSSetupLetterHtmlBody WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'HtmlBody'
+GO
+
+
+IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'Priority' )
+BEGIN
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'RDSSetupLetter', N'Priority', N'Normal')
+END
+GO
+IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'Subject' )
+BEGIN
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'RDSSetupLetter', N'Subject', N'RDS setup')
+END
+GO
+
+DECLARE @RDSSetupLetterTextBody nvarchar(2500)
+
+Set @RDSSetupLetterTextBody = N'=================================
+ RDS Setup Information
+=================================
+
+Hello #user.FirstName#,
+
+
+Please, find below RDS setup instructions.
+
+If you have any questions, feel free to contact our support department at any time.
+
+Best regards'
+
+IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'TextBody' )
+BEGIN
+INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'RDSSetupLetter', N'TextBody', @RDSSetupLetterTextBody)
+END
+ELSE
+UPDATE [dbo].[UserSettings] SET [PropertyValue] = @RDSSetupLetterTextBody WHERE [UserID] = 1 AND [SettingsName]= N'RDSSetupLetter' AND [PropertyName]= N'TextBody'
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE GroupName = 'Sharepoint Foundation Server')
+BEGIN
+ DECLARE @group_order AS INT
+ DECLARE @group_controller AS NVARCHAR(1000)
+ DECLARE @group_id AS INT
+ DECLARE @provider_id AS INT
+
+ UPDATE [dbo].[ResourceGroups] SET GroupName = 'Sharepoint Foundation Server' WHERE GroupName = 'Hosted Sharepoint'
+ SELECT @group_order = GroupOrder, @group_controller = GroupController FROM [dbo].[ResourceGroups] WHERE GroupName = 'Sharepoint Foundation Server'
+ SELECT TOP 1 @group_id = GroupId + 1 From [dbo].[ResourceGroups] ORDER BY GroupID DESC
+ SELECT TOP 1 @provider_id = ProviderId + 1 From [dbo].[Providers] ORDER BY ProviderID DESC
+ UPDATE [dbo].[ResourceGroups] SET GroupOrder = GroupOrder + 1 WHERE GroupOrder > @group_order
+ INSERT INTO [dbo].[ResourceGroups] (GroupID, GroupName, GroupOrder, GroupController, ShowGroup) VALUES (@group_id, 'Sharepoint Server', @group_order + 1, @group_controller, 1)
+ INSERT INTO [dbo].[Providers] (ProviderID, GroupID, ProviderName, DisplayName, ProviderType, EditorControl, DisableAutoDiscovery)
+ (SELECT @provider_id, @group_id, ProviderName, DisplayName, ProviderType, EditorControl, DisableAutoDiscovery FROM [dbo].[Providers] WHERE ProviderName = 'HostedSharePoint2013')
+
+ INSERT INTO [dbo].[Quotas] (QuotaID, GroupID, QuotaOrder, QuotaName, QuotaDescription, QuotaTypeID, ServiceQuota)
+ VALUES (550, @group_id, 1, 'HostedSharePointServer.Sites', 'SharePoint Site Collections', 2, 0)
+ INSERT INTO [dbo].[Quotas] (QuotaID, GroupID, QuotaOrder, QuotaName, QuotaDescription, QuotaTypeID, ServiceQuota)
+ VALUES (551, @group_id, 2, 'HostedSharePointServer.MaxStorage', 'Max site storage, MB', 3, 0)
+ INSERT INTO [dbo].[Quotas] (QuotaID, GroupID, QuotaOrder, QuotaName, QuotaDescription, QuotaTypeID, ServiceQuota)
+ VALUES (552, @group_id, 3, 'HostedSharePointServer.UseSharedSSL', 'Use shared SSL Root', 1, 0)
+END
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs
index b7a6cca0..0e412bfb 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Servers/ResourceGroups.cs
@@ -44,7 +44,8 @@ namespace WebsitePanel.EnterpriseServer
public const string Dns = "DNS";
public const string Statistics = "Statistics";
public const string SharePoint = "SharePoint";
- public const string HostedSharePoint = "Hosted SharePoint";
+ public const string SharepointFoundationServer = "Sharepoint Foundation Server";
+ public const string SharepointServer = "Sharepoint Server";
public const string Exchange = "Exchange";
public const string HostedOrganizations = "Hosted Organizations";
public const string HostedCRM = "Hosted CRM"; // CRM 4/2011
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs
index 50ead69d..bd033937 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs
@@ -63,6 +63,7 @@ namespace WebsitePanel.EnterpriseServer
public const string DEFAULT_MAILBOXPLANS = "DefaultMailboxPlans";
public const string DEFAULT_LYNCUSERPLANS = "DefaultLyncUserPlans";
+ public const string RDS_SETUP_LETTER = "RDSSetupLetter";
public int UserId;
public string SettingsName;
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs
index 057bbe31..8a8ac9e4 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs
@@ -128,6 +128,10 @@ namespace WebsitePanel.EnterpriseServer {
private System.Threading.SendOrPostCallback GetRdsServicesOperationCompleted;
+ private System.Threading.SendOrPostCallback GetRdsSetupLetterOperationCompleted;
+
+ private System.Threading.SendOrPostCallback SendRdsSetupLetterOperationCompleted;
+
///
public esRemoteDesktopServices() {
this.Url = "http://localhost:9002/esRemoteDesktopServices.asmx";
@@ -280,6 +284,12 @@ namespace WebsitePanel.EnterpriseServer {
///
public event GetRdsServicesCompletedEventHandler GetRdsServicesCompleted;
+ ///
+ public event GetRdsSetupLetterCompletedEventHandler GetRdsSetupLetterCompleted;
+
+ ///
+ public event SendRdsSetupLetterCompletedEventHandler SendRdsSetupLetterCompleted;
+
///
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollection", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public RdsCollection GetRdsCollection(int collectionId) {
@@ -2465,6 +2475,100 @@ namespace WebsitePanel.EnterpriseServer {
}
}
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsSetupLetter", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public string GetRdsSetupLetter(int itemId, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] System.Nullable accountId) {
+ object[] results = this.Invoke("GetRdsSetupLetter", new object[] {
+ itemId,
+ accountId});
+ return ((string)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginGetRdsSetupLetter(int itemId, System.Nullable accountId, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("GetRdsSetupLetter", new object[] {
+ itemId,
+ accountId}, callback, asyncState);
+ }
+
+ ///
+ public string EndGetRdsSetupLetter(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((string)(results[0]));
+ }
+
+ ///
+ public void GetRdsSetupLetterAsync(int itemId, System.Nullable accountId) {
+ this.GetRdsSetupLetterAsync(itemId, accountId, null);
+ }
+
+ ///
+ public void GetRdsSetupLetterAsync(int itemId, System.Nullable accountId, object userState) {
+ if ((this.GetRdsSetupLetterOperationCompleted == null)) {
+ this.GetRdsSetupLetterOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRdsSetupLetterOperationCompleted);
+ }
+ this.InvokeAsync("GetRdsSetupLetter", new object[] {
+ itemId,
+ accountId}, this.GetRdsSetupLetterOperationCompleted, userState);
+ }
+
+ private void OnGetRdsSetupLetterOperationCompleted(object arg) {
+ if ((this.GetRdsSetupLetterCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.GetRdsSetupLetterCompleted(this, new GetRdsSetupLetterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SendRdsSetupLetter", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public int SendRdsSetupLetter(int itemId, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] System.Nullable accountId, string to, string cc) {
+ object[] results = this.Invoke("SendRdsSetupLetter", new object[] {
+ itemId,
+ accountId,
+ to,
+ cc});
+ return ((int)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginSendRdsSetupLetter(int itemId, System.Nullable accountId, string to, string cc, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("SendRdsSetupLetter", new object[] {
+ itemId,
+ accountId,
+ to,
+ cc}, callback, asyncState);
+ }
+
+ ///
+ public int EndSendRdsSetupLetter(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((int)(results[0]));
+ }
+
+ ///
+ public void SendRdsSetupLetterAsync(int itemId, System.Nullable accountId, string to, string cc) {
+ this.SendRdsSetupLetterAsync(itemId, accountId, to, cc, null);
+ }
+
+ ///
+ public void SendRdsSetupLetterAsync(int itemId, System.Nullable accountId, string to, string cc, object userState) {
+ if ((this.SendRdsSetupLetterOperationCompleted == null)) {
+ this.SendRdsSetupLetterOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSendRdsSetupLetterOperationCompleted);
+ }
+ this.InvokeAsync("SendRdsSetupLetter", new object[] {
+ itemId,
+ accountId,
+ to,
+ cc}, this.SendRdsSetupLetterOperationCompleted, userState);
+ }
+
+ private void OnSendRdsSetupLetterOperationCompleted(object arg) {
+ if ((this.SendRdsSetupLetterCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.SendRdsSetupLetterCompleted(this, new SendRdsSetupLetterCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
///
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
@@ -3744,4 +3848,56 @@ namespace WebsitePanel.EnterpriseServer {
}
}
}
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
+ public delegate void GetRdsSetupLetterCompletedEventHandler(object sender, GetRdsSetupLetterCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class GetRdsSetupLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal GetRdsSetupLetterCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public string Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((string)(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
+ public delegate void SendRdsSetupLetterCompletedEventHandler(object sender, SendRdsSetupLetterCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class SendRdsSetupLetterCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal SendRdsSetupLetterCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public int Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((int)(this.results[0]));
+ }
+ }
+ }
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs
index 6e4df59d..57d9ea5f 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs
@@ -963,7 +963,7 @@ namespace WebsitePanel.EnterpriseServer
PackageContext cntxTmp = PackageController.GetPackageContext(org.PackageId);
- if (cntxTmp.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
+ if (cntxTmp.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
{
SharePointSiteCollectionListPaged sharePointStats = HostedSharePointServerController.GetSiteCollectionsPaged(org.PackageId, org.Id, string.Empty, string.Empty, string.Empty, 0, 0);
stats.CreatedSharePointSiteCollections = sharePointStats.TotalRowCount;
@@ -1044,11 +1044,11 @@ namespace WebsitePanel.EnterpriseServer
PackageContext cntxTmp = PackageController.GetPackageContext(org.PackageId);
- if (cntxTmp.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
+ if (cntxTmp.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
{
SharePointSiteCollectionListPaged sharePointStats = HostedSharePointServerController.GetSiteCollectionsPaged(org.PackageId, o.Id, string.Empty, string.Empty, string.Empty, 0, 0);
stats.CreatedSharePointSiteCollections += sharePointStats.TotalRowCount;
- }
+ }
if (cntxTmp.Groups.ContainsKey(ResourceGroups.HostedCRM))
{
@@ -1112,7 +1112,7 @@ namespace WebsitePanel.EnterpriseServer
stats.AllocatedDomains = cntx.Quotas[Quotas.ORGANIZATION_DOMAINS].QuotaAllocatedValue;
stats.AllocatedGroups = cntx.Quotas[Quotas.ORGANIZATION_SECURITYGROUPS].QuotaAllocatedValue;
- if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
+ if (cntx.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
{
stats.AllocatedSharePointSiteCollections = cntx.Quotas[Quotas.HOSTED_SHAREPOINT_SITES].QuotaAllocatedValue;
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/ReportController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/ReportController.cs
index 52e68d94..82589f64 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/ReportController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/ReportController.cs
@@ -155,7 +155,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
private static int GetHostedSharePointServiceId(int packageId)
{
- return PackageController.GetPackageServiceId(packageId, ResourceGroups.HostedSharePoint);
+ return PackageController.GetPackageServiceId(packageId, ResourceGroups.SharepointFoundationServer);
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs
index e9da405c..3f1f8a2d 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs
@@ -43,6 +43,8 @@ using WebsitePanel.Providers.HostedSolution;
using WebsitePanel.Providers.OS;
using WebsitePanel.Providers.RemoteDesktopServices;
using WebsitePanel.Providers.Web;
+using System.Net.Mail;
+using System.Collections;
namespace WebsitePanel.EnterpriseServer
{
@@ -308,6 +310,91 @@ namespace WebsitePanel.EnterpriseServer
return ObjectUtils.CreateListFromDataSet(DataProvider.GetServicesByGroupName(SecurityContext.User.UserId, ResourceGroups.RDS));
}
+ public static string GetRdsSetupLetter(int itemId, int? accountId)
+ {
+ return GetRdsSetupLetterInternal(itemId, accountId);
+ }
+
+ public static int SendRdsSetupLetter(int itemId, int? accountId, string to, string cc)
+ {
+ return SendRdsSetupLetterInternal(itemId, accountId, to, cc);
+ }
+
+ private static string GetRdsSetupLetterInternal(int itemId, int? accountId)
+ {
+ Organization org = OrganizationController.GetOrganization(itemId);
+
+ if (org == null)
+ {
+ return null;
+ }
+
+ UserInfo user = PackageController.GetPackageOwner(org.PackageId);
+ UserSettings settings = UserController.GetUserSettings(user.UserId, UserSettings.RDS_SETUP_LETTER);
+ string settingName = user.HtmlMail ? "HtmlBody" : "TextBody";
+ string body = settings[settingName];
+
+ if (String.IsNullOrEmpty(body))
+ {
+ return null;
+ }
+
+ string result = EvaluateMailboxTemplate(body, org, accountId, itemId);
+
+ return user.HtmlMail ? result : result.Replace("\n", "
");
+ }
+
+ private static int SendRdsSetupLetterInternal(int itemId, int? accountId, string to, string cc)
+ {
+ int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);
+
+ if (accountCheck < 0)
+ {
+ return accountCheck;
+ }
+
+ Organization org = OrganizationController.GetOrganization(itemId);
+
+ if (org == null)
+ {
+ return -1;
+ }
+
+ UserInfo user = PackageController.GetPackageOwner(org.PackageId);
+ UserSettings settings = UserController.GetUserSettings(user.UserId, UserSettings.RDS_SETUP_LETTER);
+ string from = settings["From"];
+
+ if (cc == null)
+ {
+ cc = settings["CC"];
+ }
+
+ string subject = settings["Subject"];
+ string body = user.HtmlMail ? settings["HtmlBody"] : settings["TextBody"];
+ bool isHtml = user.HtmlMail;
+ MailPriority priority = MailPriority.Normal;
+
+ if (!String.IsNullOrEmpty(settings["Priority"]))
+ {
+ priority = (MailPriority)Enum.Parse(typeof(MailPriority), settings["Priority"], true);
+ }
+
+ if (String.IsNullOrEmpty(body))
+ {
+ return 0;
+ }
+
+ if (to == null)
+ {
+ to = user.Email;
+ }
+
+ subject = EvaluateMailboxTemplate(subject, org, accountId, itemId);
+ body = EvaluateMailboxTemplate(body, org, accountId, itemId);
+
+ return MailHelper.SendMessage(from, to, cc, subject, body, priority, isHtml);
+ }
+
private static ResultObject InstallSessionHostsCertificateInternal(RdsServer rdsServer)
{
var result = TaskManager.StartResultTask("REMOTE_DESKTOP_SERVICES", "INSTALL_CERTIFICATE");
@@ -1842,5 +1929,25 @@ namespace WebsitePanel.EnterpriseServer
{
return string.Format("{0}-{1}", organizationId, displayName.Replace(" ", "_"));
}
+
+ private static string EvaluateMailboxTemplate(string template, Organization org, int? accountId, int itemId)
+ {
+ OrganizationUser user = null;
+
+ if (accountId.HasValue)
+ {
+ user = OrganizationController.GetAccount(itemId, accountId.Value);
+ }
+
+ Hashtable items = new Hashtable();
+ items["Organization"] = org;
+
+ if (user != null)
+ {
+ items["account"] = user;
+ }
+
+ return PackageController.EvaluateTemplate(template, items);
+ }
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
index 1524ae5f..272c6e8a 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
@@ -167,7 +167,7 @@ namespace WebsitePanel.EnterpriseServer
PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
- if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
+ if (cntx.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
{
SharePointSiteDiskSpace[] sharePointSiteDiskSpaces =
HostedSharePointServerController.CalculateSharePointSitesDiskSpace(org.Id, out res);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs
index 20ba3204..95812922 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs
@@ -122,7 +122,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
// Log operation.
TaskManager.StartTask("HOSTEDSHAREPOINT", "GET_LANGUAGES");
- int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.HostedSharePoint);
+ int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.SharepointFoundationServer);
if (serviceId == 0)
{
return new int[] { };
@@ -236,7 +236,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
}
// Check if stats resource is available
- int serviceId = PackageController.GetPackageServiceId(item.PackageId, ResourceGroups.HostedSharePoint);
+ int serviceId = PackageController.GetPackageServiceId(item.PackageId, ResourceGroups.SharepointFoundationServer);
if (serviceId == 0)
{
return BusinessErrorCodes.ERROR_SHAREPOINT_RESOURCE_UNAVAILABLE;
@@ -790,7 +790,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
private static int GetHostedSharePointServiceId(int packageId)
{
- return PackageController.GetPackageServiceId(packageId, ResourceGroups.HostedSharePoint);
+ return PackageController.GetPackageServiceId(packageId, ResourceGroups.SharepointFoundationServer);
}
private static List GetOrganizationSharePointSiteCollections(int orgId)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs
index 4b5a69ef..6471f151 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs
@@ -355,5 +355,17 @@ namespace WebsitePanel.EnterpriseServer
{
return RemoteDesktopServicesController.GetRdsServices();
}
+
+ [WebMethod]
+ public string GetRdsSetupLetter(int itemId, int? accountId)
+ {
+ return RemoteDesktopServicesController.GetRdsSetupLetter(itemId, accountId);
+ }
+
+ [WebMethod]
+ public int SendRdsSetupLetter(int itemId, int? accountId, string to, string cc)
+ {
+ return RemoteDesktopServicesController.SendRdsSetupLetter(itemId, accountId, to, cc);
+ }
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs
index 013e0cdb..7a03ad9f 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.TerminalServices.Windows2012/Windows2012.cs
@@ -77,6 +77,8 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
private const string RDSHelpDeskGroup = "WSP-HelpDeskAdministrators";
private const string RDSHelpDeskGroupDescription = "WSP Help Desk Administrators";
private const string LocalAdministratorsGroupName = "Administrators";
+ private const string RDSHelpDeskRdRapPolicyName = "RDS-HelpDesk-RDRAP";
+ private const string RDSHelpDeskRdCapPolicyName = "RDS-HelpDesk-RDCAP";
#endregion
@@ -325,6 +327,9 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
foreach (var gateway in Gateways)
{
+ CreateHelpDeskRdCapForce(runSpace, gateway);
+ CreateHelpDeskRdRapForce(runSpace, gateway);
+
if (!CentralNps)
{
CreateRdCapForce(runSpace, gateway, capPolicyName, collection.Name, new List { GetUsersGroupName(collection.Name) });
@@ -572,6 +577,13 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
ExecuteShellCommand(runSpace, cmd, false);
CheckOrCreateHelpDeskComputerGroup();
+
+ foreach(var gateway in Gateways)
+ {
+ CreateHelpDeskRdCapForce(runSpace, gateway);
+ CreateHelpDeskRdRapForce(runSpace, gateway);
+ }
+
string helpDeskGroupSamAccountName = CheckOrCreateAdGroup(GetHelpDeskGroupPath(RDSHelpDeskGroup), GetRootOUPath(), RDSHelpDeskGroup, RDSHelpDeskGroupDescription);
string groupName = GetLocalAdminsGroupName(collectionName);
string groupPath = GetGroupPath(organizationId, collectionName, groupName);
@@ -920,6 +932,59 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
ExecuteRemoteShellCommand(runSpace, gatewayHost, rdCapCommand, RdsModuleName);
}
+ private void CreateHelpDeskRdCapForce(Runspace runSpace, string gatewayHost)
+ {
+ if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(CapPath, RDSHelpDeskRdCapPolicyName)))
+ {
+ return;
+ }
+
+ var userGroupParameter = string.Format("@({0})", string.Format("\"{0}@{1}\"", RDSHelpDeskGroup, RootDomain));
+
+ Command rdCapCommand = new Command("New-Item");
+ rdCapCommand.Parameters.Add("Path", string.Format("\"{0}\"", CapPath));
+ rdCapCommand.Parameters.Add("Name", string.Format("\"{0}\"", RDSHelpDeskRdCapPolicyName));
+ rdCapCommand.Parameters.Add("UserGroups", userGroupParameter);
+ rdCapCommand.Parameters.Add("AuthMethod", 1);
+
+ ExecuteRemoteShellCommand(runSpace, gatewayHost, rdCapCommand, RdsModuleName);
+ }
+
+ private void CreateHelpDeskRdRapForce(Runspace runSpace, string gatewayHost)
+ {
+ if (ItemExistsRemote(runSpace, gatewayHost, Path.Combine(RapPath, RDSHelpDeskRdRapPolicyName)))
+ {
+ return;
+ }
+
+ var userGroupParameter = string.Format("@({0})", string.Format("\"{0}@{1}\"", RDSHelpDeskGroup, RootDomain));
+ var computerGroupParameter = string.Format("\"{0}@{1}\"", RDSHelpDeskComputerGroup, RootDomain);
+
+ Command rdRapCommand = new Command("New-Item");
+ rdRapCommand.Parameters.Add("Path", string.Format("\"{0}\"", RapPath));
+ rdRapCommand.Parameters.Add("Name", string.Format("\"{0}\"", RDSHelpDeskRdRapPolicyName));
+ rdRapCommand.Parameters.Add("UserGroups", userGroupParameter);
+ rdRapCommand.Parameters.Add("ComputerGroupType", 1);
+ rdRapCommand.Parameters.Add("ComputerGroup", computerGroupParameter);
+
+ object[] errors;
+
+ for (int i = 0; i < 3; i++)
+ {
+ ExecuteRemoteShellCommand(runSpace, gatewayHost, rdRapCommand, out errors, RdsModuleName);
+
+ if (errors == null || !errors.Any())
+ {
+ Log.WriteWarning("RD RAP Added Successfully");
+ break;
+ }
+ else
+ {
+ Log.WriteWarning(string.Join("\r\n", errors.Select(e => e.ToString()).ToArray()));
+ }
+ }
+ }
+
internal void RemoveRdCap(Runspace runSpace, string gatewayHost, string name)
{
RemoveItemRemote(runSpace, gatewayHost, string.Format(@"{0}\{1}", CapPath, name), RdsModuleName);
@@ -962,7 +1027,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
Log.WriteWarning(string.Join("\r\n", errors.Select(e => e.ToString()).ToArray()));
}
}
- }
+ }
internal void RemoveRdRap(Runspace runSpace, string gatewayHost, string name)
{
@@ -2061,7 +2126,7 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
{
pipeLine.Commands.AddScript(script);
}
-
+
results = pipeLine.Invoke();
if (pipeLine.Error != null && pipeLine.Error.Count > 0)
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config
index ff127dbd..99df6c86 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/ESModule_ControlsHierarchy.config
@@ -153,4 +153,5 @@
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config
index 4f2a314a..fa79a125 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config
@@ -173,6 +173,7 @@
+
@@ -583,6 +584,7 @@
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx
index 284db1c3..33515c24 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx
@@ -795,4 +795,7 @@
Add New RDS Server
+
+ Edit RDS Server
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
index 6aa175d2..da7f2675 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
@@ -3301,6 +3301,12 @@
Organization user setup instructions have been sent
+
+ Error sending setup instructions
+
+
+ Setup instructions have been sent
+
Max Log Size, MB
@@ -3368,6 +3374,12 @@
Hosted SharePoint
+
+ SharePoint Foundation Server
+
+
+ SharePoint Server
+
Office Communications Server
@@ -3380,6 +3392,12 @@
Max site storage, MB
+
+ SharePoint Site Collections per Organization
+
+
+ Max site storage, MB
+
Full licenses per organization
@@ -5156,6 +5174,9 @@
Use shared SSL Root
+
+ Use shared SSL Root
+
Consumer Organization Support
@@ -5660,6 +5681,9 @@
RDS Server not added
+
+ RDS Server not updated
+
Session host certificate has been installed
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx
index e00296b4..cc91a936 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx
@@ -201,8 +201,11 @@
Setup
-
- SharePoint
+
+ SharePoint Foundation Server
+
+
+ SharePoint Server
Site Collections
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/RDSServersEditServer.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/RDSServersEditServer.ascx.resx
new file mode 100644
index 00000000..2f06d924
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/RDSServersEditServer.ascx.resx
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Update
+
+
+ Free Memory:
+
+
+ Free Space:
+
+
+ Load Percentage:
+
+
+ Allocated Memory:
+
+
+ Processor:
+
+
+ Server Comments:
+
+
+ Server Fully Qualified Domain Name:
+
+
+ Size:
+
+
+ Status:
+
+
+ Volume Name:
+
+
+ Server Info
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsRdsSetupLetter.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsRdsSetupLetter.ascx.resx
new file mode 100644
index 00000000..ba4e8616
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsRdsSetupLetter.ascx.resx
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ High
+
+
+ Low
+
+
+ Normal
+
+
+ CC:
+
+
+ From:
+
+
+ HTML Body:
+
+
+ No Changes HTML Body:
+
+
+ No Changes Text Body:
+
+
+ Priority:
+
+
+ Subject:
+
+
+ Text Body:
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx
index fddd4fbc..2e02f4fe 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountMailTemplateSettings.ascx.resx
@@ -147,4 +147,7 @@
Domain MX and NS Letter
+
+ RDS Setup Letter
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserOrganization.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserOrganization.ascx.resx
index 9a815be7..135dc55a 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserOrganization.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserOrganization.ascx.resx
@@ -234,9 +234,12 @@
Setup
-
- Hosted Organization - SharePoint
+
+ Hosted Organization - SharePoint Foundation Server
+
+ Hosted Organization - SharePoint Server
+
Sharepoint Sites
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
index 1154214a..7a483c39 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/OrganizationHome.ascx.cs
@@ -236,7 +236,7 @@ namespace WebsitePanel.Portal.ExchangeServer
//Show SharePoint statistics
- if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
+ if (cntx.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
{
sharePointStatsPanel.Visible = true;
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx
index afbd303a..66d28e5b 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx
@@ -165,8 +165,11 @@
Setup
-
- SharePoint
+
+ SharePoint Foundation Server
+
+
+ SharePoint Server
OCS
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs
index 386f3984..45d1f8c5 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/Menu.ascx.cs
@@ -240,10 +240,10 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
}
- private void PrepareSharePointMenu(PackageContext cntx, List groups, string imagePath)
+ private void PrepareSharePointMenu(PackageContext cntx, List groups, string imagePath, string menuItemText)
{
MenuGroup sharepointGroup =
- new MenuGroup(GetLocalizedString("Text.SharePointGroup"), imagePath + "sharepoint24.png");
+ new MenuGroup(menuItemText, imagePath + "sharepoint24.png");
sharepointGroup.MenuItems.Add(CreateMenuItem("SiteCollections", "sharepoint_sitecollections"));
sharepointGroup.MenuItems.Add(CreateMenuItem("StorageUsage", "sharepoint_storage_usage"));
sharepointGroup.MenuItems.Add(CreateMenuItem("StorageLimits", "sharepoint_storage_settings"));
@@ -314,9 +314,14 @@ namespace WebsitePanel.Portal.ExchangeServer.UserControls
PrepareBlackBerryMenu(cntx, groups, imagePath);
//SharePoint menu group;
- if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
+ if (cntx.Groups.ContainsKey(ResourceGroups.SharepointFoundationServer))
{
- PrepareSharePointMenu(cntx, groups, imagePath);
+ PrepareSharePointMenu(cntx, groups, imagePath, GetLocalizedString("Text.SharePointFoundationServerGroup"));
+ }
+
+ if (cntx.Groups.ContainsKey(ResourceGroups.SharepointServer))
+ {
+ PrepareSharePointMenu(cntx, groups, imagePath, GetLocalizedString("Text.SharePointServerGroup"));
}
//CRM Menu
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/App_LocalResources/RDSSetupLetter.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/App_LocalResources/RDSSetupLetter.ascx.resx
new file mode 100644
index 00000000..61c375b4
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/App_LocalResources/RDSSetupLetter.ascx.resx
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Send
+
+
+ CC:
+
+
+ To:
+
+
+ Setup Instructions
+
+
+ Send via E-Mail
+
+
+ Edit RDS Collection
+
+
+ * Enter E-Mail
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditApplicationUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditApplicationUsers.ascx.cs
index a5731696..acc3b9cb 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditApplicationUsers.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditApplicationUsers.ascx.cs
@@ -40,8 +40,10 @@ namespace WebsitePanel.Portal.RDS
{
protected void Page_Load(object sender, EventArgs e)
{
+ users.Module = Module;
+
if (!IsPostBack)
- {
+ {
var collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
var applications = ES.Services.RDS.GetCollectionRemoteApplications(PanelRequest.ItemID, collection.Name);
var remoteApp = applications.Where(x => x.Alias.Equals(PanelRequest.ApplicationID, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs
index 8af9191a..906a2160 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSEditCollectionUsers.ascx.cs
@@ -40,9 +40,11 @@ namespace WebsitePanel.Portal.RDS
{
protected void Page_Load(object sender, EventArgs e)
- {
+ {
+ users.Module = Module;
+
if (!IsPostBack)
- {
+ {
BindQuota();
var collectionUsers = ES.Services.RDS.GetRdsCollectionUsers(PanelRequest.CollectionID);
var collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSLocalAdmins.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSLocalAdmins.ascx.cs
index 7ce5ca79..3b310a65 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSLocalAdmins.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSLocalAdmins.ascx.cs
@@ -13,6 +13,8 @@ namespace WebsitePanel.Portal.RDS
{
protected void Page_Load(object sender, EventArgs e)
{
+ users.Module = Module;
+
if (!IsPostBack)
{
var collectionLocalAdmins = ES.Services.RDS.GetRdsCollectionLocalAdmins(PanelRequest.CollectionID);
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx
new file mode 100644
index 00000000..42fbacb1
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx
@@ -0,0 +1,60 @@
+<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDSSetupLetter.ascx.cs" Inherits="WebsitePanel.Portal.RDS.RDSSeupLetter" %>
+<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
+<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="../UserControls/CollapsiblePanel.ascx" %>
+<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
+<%@ Register Src="UserControls/RDSCollectionTabs.ascx" TagName="CollectionTabs" TagPrefix="wsp" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ |
+
+
+
+
+ |
+
+ |
+
+
+ |
+
+ |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx.cs
new file mode 100644
index 00000000..41e33a4a
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using WebsitePanel.EnterpriseServer;
+using WebsitePanel.Providers.HostedSolution;
+
+namespace WebsitePanel.Portal.RDS
+{
+ public partial class RDSSeupLetter : WebsitePanelModuleBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ BindInstructions();
+ }
+ }
+
+ private void BindInstructions()
+ {
+ int accountId = PanelRequest.AccountID > 0 ? PanelRequest.AccountID : 0;
+ litContent.Text = ES.Services.RDS.GetRdsSetupLetter(PanelRequest.ItemID, accountId);
+ PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
+
+ if (package == null)
+ {
+ RedirectSpaceHomePage();
+ }
+
+ OrganizationUser account = ES.Services.Organizations.GetUserGeneralSettings(PanelRequest.ItemID, accountId);
+
+ if (account != null)
+ {
+ txtTo.Text = account.ExternalEmail;
+ }
+ }
+
+ protected void btnSend_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ int accountId = PanelRequest.AccountID > 0 ? PanelRequest.AccountID : 0;
+ int result = ES.Services.RDS.SendRdsSetupLetter(PanelRequest.ItemID, accountId, txtTo.Text.Trim(), txtCC.Text.Trim());
+
+ if (result < 0)
+ {
+ messageBox.ShowResultMessage(result);
+ return;
+ }
+
+ messageBox.ShowSuccessMessage("RDS_SETUP_LETTER_SEND");
+ }
+ catch (Exception ex)
+ {
+ messageBox.ShowErrorMessage("RDS_SETUP_LETTER_SEND", ex);
+ return;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx.designer.cs
new file mode 100644
index 00000000..7a8f53e8
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/RDSSetupLetter.ascx.designer.cs
@@ -0,0 +1,150 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WebsitePanel.Portal.RDS {
+
+
+ public partial class RDSSeupLetter {
+
+ ///
+ /// asyncTasks control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
+
+ ///
+ /// imgEditRDSCollection control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Image imgEditRDSCollection;
+
+ ///
+ /// locTitle control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize locTitle;
+
+ ///
+ /// messageBox control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
+
+ ///
+ /// tabs control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.RDS.UserControls.RdsServerTabs tabs;
+
+ ///
+ /// secEmail control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.CollapsiblePanel secEmail;
+
+ ///
+ /// EmailPanel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Panel EmailPanel;
+
+ ///
+ /// tblEmail control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlTable tblEmail;
+
+ ///
+ /// lblTo control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblTo;
+
+ ///
+ /// txtTo control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtTo;
+
+ ///
+ /// valRequireEmail control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireEmail;
+
+ ///
+ /// lblCC control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblCC;
+
+ ///
+ /// txtCC control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtCC;
+
+ ///
+ /// btnSend control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btnSend;
+
+ ///
+ /// litContent control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litContent;
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx
index fc6a2efe..9a1f231a 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionServers.ascx.resx
@@ -177,10 +177,10 @@
View Info
-
+
Free Space:
-
+
Size:
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionTabs.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionTabs.ascx.resx
index 9f6daa9d..2cd1fa14 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionTabs.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/App_LocalResources/RDSCollectionTabs.ascx.resx
@@ -135,4 +135,7 @@
Local Administrators
+
+ Setup Instructions
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionTabs.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionTabs.ascx.cs
index 8336747f..f57fd491 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionTabs.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionTabs.ascx.cs
@@ -26,6 +26,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
tabsList.Add(CreateTab("rds_collection_edit_users", "Tab.RdsUsers"));
tabsList.Add(CreateTab("rds_collection_user_sessions", "Tab.UserSessions"));
tabsList.Add(CreateTab("rds_collection_local_admins", "Tab.LocalAdmins"));
+ tabsList.Add(CreateTab("rds_setup_letter", "Tab.RdsSetupLetter"));
int idx = 0;
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx
index 93432cd3..1572c47a 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx
@@ -8,7 +8,7 @@
@@ -21,7 +21,7 @@
-
+
@@ -29,6 +29,13 @@
+
+
+
+
+
+
@@ -90,7 +97,7 @@
-
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs
index 76837a86..2a077931 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDS/UserControls/RDSCollectionUsers.ascx.cs
@@ -264,5 +264,13 @@ namespace WebsitePanel.Portal.RDS.UserControls
{
return string.Compare(user1.DisplayName, user2.DisplayName);
}
+
+ protected void gvUsers_RowCommand(object sender, GridViewCommandEventArgs e)
+ {
+ if (e.CommandName == "SetupInstructions")
+ {
+ Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "rds_setup_letter", "CollectionID=" + PanelRequest.CollectionID, "ItemID=" + PanelRequest.ItemID, "AccountID=" + e.CommandArgument.ToString()));
+ }
+ }
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx
index 45518cce..cb516139 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx
@@ -55,10 +55,13 @@
DataSourceID="odsRDSServersPaged" EnableViewState="False"
EmptyDataText="gvRDSServers">
-
+
-
+
+
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx.cs
index 1b73054e..566cddbc 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServers.ascx.cs
@@ -125,6 +125,10 @@ namespace WebsitePanel.Portal
{
InstallCertificate(e.CommandArgument.ToString());
}
+ else if (e.CommandName == "EditServer")
+ {
+ EditServer(e.CommandArgument.ToString());
+ }
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
@@ -186,7 +190,11 @@ namespace WebsitePanel.Portal
}
messageBoxPanel.Update();
-// Response.Redirect(Request.Url.ToString(), true);
+ }
+
+ private void EditServer(string serverId)
+ {
+ Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "edit_rdsserver", "SpaceID=" + PanelSecurity.PackageId, "ServerId=" + serverId));
}
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx
new file mode 100644
index 00000000..16696e16
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx
@@ -0,0 +1,111 @@
+<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RDSServersEditServer.ascx.cs" Inherits="WebsitePanel.Portal.RDSServersEditServer" %>
+<%@ Register Src="UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
+<%@ Register Src="UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
+<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="UserControls/CollapsiblePanel.ascx" %>
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+ |
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+ |
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx.cs
new file mode 100644
index 00000000..940a29d0
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using WebsitePanel.Providers.Common;
+
+namespace WebsitePanel.Portal
+{
+ public partial class RDSServersEditServer : WebsitePanelModuleBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ var rdsServer = ES.Services.RDS.GetRdsServer(PanelRequest.ServerId);
+ lblServerName.Text = rdsServer.FqdName;
+ txtServerComments.Text = rdsServer.Description;
+
+ var serverInfo = ES.Services.RDS.GetRdsServerInfo(null, rdsServer.FqdName);
+ litProcessor.Text = string.Format("{0}x{1} MHz", serverInfo.NumberOfCores, serverInfo.MaxClockSpeed);
+ litLoadPercentage.Text = string.Format("{0}%", serverInfo.LoadPercentage);
+ litMemoryAllocated.Text = string.Format("{0} MB", serverInfo.MemoryAllocatedMb);
+ litFreeMemory.Text = string.Format("{0} MB", serverInfo.FreeMemoryMb);
+ litStatus.Text = serverInfo.Status;
+ rpServerDrives.DataSource = serverInfo.Drives;
+ rpServerDrives.DataBind();
+ }
+ }
+
+ protected void btnUpdate_Click(object sender, EventArgs e)
+ {
+ if (!Page.IsValid)
+ return;
+ try
+ {
+ var rdsServer = ES.Services.RDS.GetRdsServer(PanelRequest.ServerId);
+ rdsServer.Description = txtServerComments.Text;
+
+ ResultObject result = ES.Services.RDS.UpdateRdsServer(rdsServer);
+
+ if (!result.IsSuccess && result.ErrorCodes.Count > 0)
+ {
+ messageBox.ShowMessage(result, "RDSSERVER_NOT_UPDATED", "");
+ return;
+ }
+
+ RedirectToBrowsePage();
+ }
+ catch (Exception ex)
+ {
+ ShowErrorMessage("RDSSERVER_NOT_UPDATED", ex);
+ }
+ }
+
+ protected void btnCancel_Click(object sender, EventArgs e)
+ {
+ RedirectToBrowsePage();
+ }
+ }
+}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx.designer.cs
new file mode 100644
index 00000000..74024cbf
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/RDSServersEditServer.ascx.designer.cs
@@ -0,0 +1,204 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WebsitePanel.Portal {
+
+
+ public partial class RDSServersEditServer {
+
+ ///
+ /// asyncTasks control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
+
+ ///
+ /// messageBox control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
+
+ ///
+ /// locServerName control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize locServerName;
+
+ ///
+ /// lblServerName control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblServerName;
+
+ ///
+ /// locServerComments control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Localize locServerComments;
+
+ ///
+ /// txtServerComments control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtServerComments;
+
+ ///
+ /// secServerInfo control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::WebsitePanel.Portal.CollapsiblePanel secServerInfo;
+
+ ///
+ /// panelHardwareInfo control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Panel panelHardwareInfo;
+
+ ///
+ /// locStatus control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal locStatus;
+
+ ///
+ /// litStatus control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litStatus;
+
+ ///
+ /// locProcessor control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal locProcessor;
+
+ ///
+ /// litProcessor control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litProcessor;
+
+ ///
+ /// locLoadPercentage control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal locLoadPercentage;
+
+ ///
+ /// litLoadPercentage control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litLoadPercentage;
+
+ ///
+ /// locMemoryAllocated control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal locMemoryAllocated;
+
+ ///
+ /// litMemoryAllocated control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litMemoryAllocated;
+
+ ///
+ /// locFreeMemory control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal locFreeMemory;
+
+ ///
+ /// litFreeMemory control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Literal litFreeMemory;
+
+ ///
+ /// rpServerDrives control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Repeater rpServerDrives;
+
+ ///
+ /// btnUpdate control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btnUpdate;
+
+ ///
+ /// btnCancel control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btnCancel;
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx
index a92780ab..be10b9f8 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx
@@ -17,7 +17,7 @@
|
-
+
|
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx.designer.cs
index 41da77c5..28776486 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersAddService.ascx.designer.cs
@@ -1,38 +1,9 @@
-// Copyright (c) 2015, 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.
-
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:2.0.50727.1433
//
// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
+// the code is regenerated.
//
//------------------------------------------------------------------------------
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs
index 61fafa95..3ed913ac 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ServersEditService.ascx.cs
@@ -160,7 +160,8 @@ namespace WebsitePanel.Portal
(resourceGroup.GroupName == ResourceGroups.HostedCRM)|
(resourceGroup.GroupName == ResourceGroups.Os)|
(resourceGroup.GroupName == ResourceGroups.HostedOrganizations) |
- (resourceGroup.GroupName == ResourceGroups.HostedSharePoint) |
+ (resourceGroup.GroupName == ResourceGroups.SharepointFoundationServer) |
+ (resourceGroup.GroupName == ResourceGroups.SharepointServer) |
(resourceGroup.GroupName == ResourceGroups.Mail)|
(resourceGroup.GroupName == ResourceGroups.Lync)|
(resourceGroup.GroupName == ResourceGroups.Exchange)|
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx
new file mode 100644
index 00000000..1e5b4bb0
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx
@@ -0,0 +1,43 @@
+<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SettingsRdsSetupLetter.ascx.cs" Inherits="WebsitePanel.Portal.SettingsRdsSetupLetter" %>
+
+
+ |
+
+ |
+
+
+ |
+
+ |
+
+
+ |
+
+ |
+
+
+ |
+
+
+ High
+ Normal
+ Low
+
+ |
+
+
+
|
+
+
+
+ |
+
+
+
|
+
+
+
+ |
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx.cs
new file mode 100644
index 00000000..7a4370c8
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using WebsitePanel.EnterpriseServer;
+
+namespace WebsitePanel.Portal
+{
+ public partial class SettingsRdsSetupLetter : WebsitePanelControlBase, IUserSettingsEditorControl
+ {
+ public void BindSettings(UserSettings settings)
+ {
+ txtFrom.Text = settings["From"];
+ txtCC.Text = settings["CC"];
+ txtSubject.Text = settings["Subject"];
+ Utils.SelectListItem(ddlPriority, settings["Priority"]);
+ txtHtmlBody.Text = settings["HtmlBody"];
+ txtTextBody.Text = settings["TextBody"];
+ }
+
+ public void SaveSettings(UserSettings settings)
+ {
+ settings["From"] = txtFrom.Text;
+ settings["CC"] = txtCC.Text;
+ settings["Subject"] = txtSubject.Text;
+ settings["Priority"] = ddlPriority.SelectedValue;
+ settings["HtmlBody"] = txtHtmlBody.Text;
+ settings["TextBody"] = txtTextBody.Text;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx.designer.cs
new file mode 100644
index 00000000..cce7d690
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsSetupLetter.ascx.designer.cs
@@ -0,0 +1,123 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace WebsitePanel.Portal {
+
+
+ public partial class SettingsRdsSetupLetter {
+
+ ///
+ /// lblFrom control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblFrom;
+
+ ///
+ /// txtFrom control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtFrom;
+
+ ///
+ /// lblCC control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblCC;
+
+ ///
+ /// txtCC control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtCC;
+
+ ///
+ /// lblSubject control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblSubject;
+
+ ///
+ /// txtSubject control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtSubject;
+
+ ///
+ /// lblPriority control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblPriority;
+
+ ///
+ /// ddlPriority control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.DropDownList ddlPriority;
+
+ ///
+ /// lblHtmlBody control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblHtmlBody;
+
+ ///
+ /// txtHtmlBody control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtHtmlBody;
+
+ ///
+ /// lblTextBody control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Label lblTextBody;
+
+ ///
+ /// txtTextBody control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.TextBox txtTextBody;
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx
index 45a3d489..37f5ca86 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountMailTemplateSettings.ascx
@@ -38,6 +38,10 @@
+
+
+