Merge
This commit is contained in:
commit
68ea4a618a
39 changed files with 2233 additions and 224 deletions
|
@ -4676,6 +4676,23 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
#region RDS
|
||||
|
||||
public static IDataReader GetRdsServerSettings(int serverId, string settingsName)
|
||||
{
|
||||
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
|
||||
ObjectQualifier + "GetRDSServerSettings",
|
||||
new SqlParameter("@ServerId", serverId),
|
||||
new SqlParameter("@SettingsName", settingsName));
|
||||
}
|
||||
|
||||
public static void UpdateRdsServerSettings(int serverId, string settingsName, string xml)
|
||||
{
|
||||
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
|
||||
ObjectQualifier + "UpdateRDSServerSettings",
|
||||
new SqlParameter("@ServerId", serverId),
|
||||
new SqlParameter("@SettingsName", settingsName),
|
||||
new SqlParameter("@Xml", xml));
|
||||
}
|
||||
|
||||
public static int AddRdsCertificate(int serviceId, string content, byte[] hash, string fileName, DateTime? validFrom, DateTime? expiryDate)
|
||||
{
|
||||
SqlParameter rdsCertificateId = new SqlParameter("@RDSCertificateID", SqlDbType.Int);
|
||||
|
|
|
@ -45,6 +45,7 @@ using WebsitePanel.Providers.RemoteDesktopServices;
|
|||
using WebsitePanel.Providers.Web;
|
||||
using System.Net.Mail;
|
||||
using System.Collections;
|
||||
using WebsitePanel.EnterpriseServer.Base.RDS;
|
||||
|
||||
namespace WebsitePanel.EnterpriseServer
|
||||
{
|
||||
|
@ -320,6 +321,77 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return SendRdsSetupLetterInternal(itemId, accountId, to, cc);
|
||||
}
|
||||
|
||||
public static RdsServerSettings GetRdsServerSettings(int serverId, string settingsName)
|
||||
{
|
||||
return GetRdsServerSettingsInternal(serverId, settingsName);
|
||||
}
|
||||
|
||||
public static int UpdateRdsServerSettings(int serverId, string settingsName, RdsServerSettings settings)
|
||||
{
|
||||
return UpdateRdsServerSettingsInternal(serverId, settingsName, settings);
|
||||
}
|
||||
|
||||
private static RdsServerSettings GetRdsServerSettingsInternal(int serverId, string settingsName)
|
||||
{
|
||||
IDataReader reader = DataProvider.GetRdsServerSettings(serverId, settingsName);
|
||||
|
||||
var settings = new RdsServerSettings();
|
||||
settings.ServerId = serverId;
|
||||
settings.SettingsName = settingsName;
|
||||
|
||||
while (reader.Read())
|
||||
{
|
||||
settings.Settings.Add(new RdsServerSetting
|
||||
{
|
||||
PropertyName = (string)reader["PropertyName"],
|
||||
PropertyValue = (string)reader["PropertyValue"],
|
||||
ApplyAdministrators = Convert.ToBoolean("ApplyAdministrators"),
|
||||
ApplyUsers = Convert.ToBoolean("ApplyUsers")
|
||||
});
|
||||
}
|
||||
|
||||
reader.Close();
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
private static int UpdateRdsServerSettingsInternal(int serverId, string settingsName, RdsServerSettings settings)
|
||||
{
|
||||
TaskManager.StartTask("REMOTE_DESKTOP_SERVICES", "UPDATE_SETTINGS");
|
||||
|
||||
try
|
||||
{
|
||||
XmlDocument doc = new XmlDocument();
|
||||
XmlElement nodeProps = doc.CreateElement("properties");
|
||||
|
||||
if (settings != null)
|
||||
{
|
||||
foreach (var setting in settings.Settings)
|
||||
{
|
||||
XmlElement nodeProp = doc.CreateElement("property");
|
||||
nodeProp.SetAttribute("name", setting.PropertyName);
|
||||
nodeProp.SetAttribute("value", setting.PropertyValue);
|
||||
nodeProp.SetAttribute("applyUsers", setting.ApplyUsers ? "1" : "0");
|
||||
nodeProp.SetAttribute("applyAdministrators", setting.ApplyAdministrators ? "1" : "0");
|
||||
nodeProps.AppendChild(nodeProp);
|
||||
}
|
||||
}
|
||||
|
||||
string xml = nodeProps.OuterXml;
|
||||
DataProvider.UpdateRdsServerSettings(serverId, settingsName, xml);
|
||||
|
||||
return 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw TaskManager.WriteError(ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
TaskManager.CompleteTask();
|
||||
}
|
||||
}
|
||||
|
||||
private static string GetRdsSetupLetterInternal(int itemId, int? accountId)
|
||||
{
|
||||
Organization org = OrganizationController.GetOrganization(itemId);
|
||||
|
|
|
@ -58,18 +58,18 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
/// <param name="startRow">Row index to start from.</param>
|
||||
/// <param name="maximumRows">Maximum number of rows to retrieve.</param>
|
||||
/// <returns>Site collections that match.</returns>
|
||||
public static SharePointSiteCollectionListPaged GetSiteCollectionsPaged(int packageId, int organizationId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
|
||||
public static SharePointSiteCollectionListPaged GetSiteCollectionsPaged(int packageId, int organizationId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, string groupName = null)
|
||||
{
|
||||
if (IsDemoMode)
|
||||
{
|
||||
SharePointSiteCollectionListPaged demoResult = new SharePointSiteCollectionListPaged();
|
||||
demoResult.SiteCollections = GetSiteCollections(1, false);
|
||||
demoResult.SiteCollections = GetSiteCollections(1, false, null);
|
||||
demoResult.TotalRowCount = demoResult.SiteCollections.Count;
|
||||
return demoResult;
|
||||
}
|
||||
|
||||
SharePointSiteCollectionListPaged paged = new SharePointSiteCollectionListPaged();
|
||||
DataSet result = PackageController.GetRawPackageItemsPaged(packageId, typeof(SharePointSiteCollection),
|
||||
DataSet result = PackageController.GetRawPackageItemsPaged(packageId, groupName, typeof(SharePointSiteCollection),
|
||||
true, filterColumn, filterValue, sortColumn, startRow, Int32.MaxValue);
|
||||
List<SharePointSiteCollection> items = PackageController.CreateServiceItemsList(result, 1).ConvertAll<SharePointSiteCollection>(delegate(ServiceProviderItem item) { return (SharePointSiteCollection)item; });
|
||||
|
||||
|
@ -149,8 +149,9 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
/// </summary>
|
||||
/// <param name="packageId">Package that owns site collections.</param>
|
||||
/// <param name="recursive">A value which shows whether nested spaces must be searched as well.</param>
|
||||
/// <param name="groupName">Resource group name.</param>
|
||||
/// <returns>List of found site collections.</returns>
|
||||
public static List<SharePointSiteCollection> GetSiteCollections(int packageId, bool recursive)
|
||||
public static List<SharePointSiteCollection> GetSiteCollections(int packageId, bool recursive, string groupName)
|
||||
{
|
||||
if (IsDemoMode)
|
||||
{
|
||||
|
@ -183,7 +184,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
}
|
||||
|
||||
|
||||
List<ServiceProviderItem> items = PackageController.GetPackageItemsByType(packageId, typeof(SharePointSiteCollection), recursive);
|
||||
List<ServiceProviderItem> items = PackageController.GetPackageItemsByType(packageId, groupName, typeof(SharePointSiteCollection), recursive);
|
||||
return items.ConvertAll<SharePointSiteCollection>(delegate(ServiceProviderItem item) { return (SharePointSiteCollection)item; });
|
||||
}
|
||||
|
||||
|
@ -196,7 +197,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
{
|
||||
if (IsDemoMode)
|
||||
{
|
||||
return GetSiteCollections(1, false)[itemId - 1];
|
||||
return GetSiteCollections(1, false, null)[itemId - 1];
|
||||
}
|
||||
|
||||
SharePointSiteCollection item = PackageController.GetPackageItem(itemId) as SharePointSiteCollection;
|
||||
|
@ -207,8 +208,9 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
/// Adds SharePoint site collection.
|
||||
/// </summary>
|
||||
/// <param name="item">Site collection description.</param>
|
||||
/// <param name="groupName">Resource group name.</param>
|
||||
/// <returns>Created site collection id within metabase.</returns>
|
||||
public static int AddSiteCollection(SharePointSiteCollection item)
|
||||
public static int AddSiteCollection(SharePointSiteCollection item, string groupName)
|
||||
{
|
||||
|
||||
// Check account.
|
||||
|
@ -236,7 +238,8 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
}
|
||||
|
||||
// Check if stats resource is available
|
||||
int serviceId = PackageController.GetPackageServiceId(item.PackageId, ResourceGroups.SharepointFoundationServer);
|
||||
int serviceId = PackageController.GetPackageServiceId(item.PackageId, groupName);
|
||||
|
||||
if (serviceId == 0)
|
||||
{
|
||||
return BusinessErrorCodes.ERROR_SHAREPOINT_RESOURCE_UNAVAILABLE;
|
||||
|
@ -271,9 +274,9 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
|
||||
int counter = 0;
|
||||
item.Name = String.Format("{0}://{1}", rootWebApplicationUri.Scheme, hostNameBase + "-" + counter.ToString() + "." + sslRoot);
|
||||
siteName = String.Format("{0}", hostNameBase + "-" + counter.ToString() + "." + sslRoot);
|
||||
siteName = String.Format("{0}", hostNameBase + "-" + counter.ToString() + "." + sslRoot);
|
||||
|
||||
while (DataProvider.CheckServiceItemExists(serviceId, item.Name, "WebsitePanel.Providers.SharePoint.SharePointSiteCollection, WebsitePanel.Providers.Base"))
|
||||
while (CheckServiceItemExists(item.Name, item.PackageId))
|
||||
{
|
||||
counter++;
|
||||
item.Name = String.Format("{0}://{1}", rootWebApplicationUri.Scheme, hostNameBase + "-" + counter.ToString() + "." + sslRoot);
|
||||
|
@ -303,7 +306,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
|
||||
|
||||
// Check package item with given name already exists.
|
||||
if (PackageController.GetPackageItemByName(item.PackageId, item.Name, typeof(SharePointSiteCollection)) != null)
|
||||
if (PackageController.GetPackageItemByName(item.PackageId, groupName, item.Name, typeof(SharePointSiteCollection)) != null)
|
||||
{
|
||||
return BusinessErrorCodes.ERROR_SHAREPOINT_PACKAGE_ITEM_EXISTS;
|
||||
}
|
||||
|
@ -1012,5 +1015,17 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
|
|||
return (SecurityContext.CheckAccount(DemandAccount.NotDemo) < 0);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool CheckServiceItemExists(string name, int packageId)
|
||||
{
|
||||
bool exists = PackageController.GetPackageItemByName(packageId, ResourceGroups.SharepointFoundationServer, name, typeof(SharePointSiteCollection)) != null;
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
exists = PackageController.GetPackageItemByName(packageId, ResourceGroups.SharepointServer, name, typeof(SharePointSiteCollection)) != null;
|
||||
}
|
||||
|
||||
return exists;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue