📄 managelicenses.aspx.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.ControlPanel.UI;
using System.Collections.Specialized;
namespace CommunityServer.ControlPanel.Tools
{
/// <summary>
/// Summary description for ManageLicenses.
/// </summary>
public class ManageLicenses : BaseToolsPage
{
#region Members
protected System.Web.UI.WebControls.Repeater Products;
protected StatusMessage Status;
protected System.Web.UI.HtmlControls.HtmlInputFile LicenseFile;
protected Button UploadLicense;
Hashtable currentLicenses = null;
#endregion
override protected void OnInit(EventArgs e)
{
base.OnInit(e);
Products.ItemDataBound += new RepeaterItemEventHandler(Products_ItemDataBound);
UploadLicense.Click += new System.EventHandler(UploadLicense_Click);
this.Load += new System.EventHandler(this.Page_Load);
try
{
currentLicenses = Telligent.Registration.Licensing.GetCurrentLicenses();
}
catch (Exception)// ex)
{
throw new CSException(CSExceptionType.LicenseAccessError, "An error occured while retrieving license information"); //, ex);
}
}
private void Page_Load(object sender, System.EventArgs e)
{
DataBind();
}
public override void DataBind()
{
UploadLicense.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_Install");
Products.DataSource = GetProductsList();
Products.DataBind();
}
#region Product List Retrieval Method
private ArrayList GetProductsList()
{
ArrayList products;
Hashtable licenseKeys = new Hashtable();
try
{
products = CommunityServer.Components.Products.GetProducts();
foreach (store_Product product in products)
{
if (!Globals.IsNullorEmpty(product.LicenseType))
licenseKeys[product.LicenseType] = true;
}
}
catch
{
// if an error occurs while loading the product list from the web service, retrieve the listing from the currently-installed licenses
if (!Status.Visible)
{
Status.Success = false;
Status.IsLicenseMessage = true;
Status.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_ProductsCouldNotBeRetrieved");
Status.Visible = true;
}
products = new ArrayList();
}
store_Product p;
foreach (string key in currentLicenses.Keys)
{
if (!licenseKeys.ContainsKey(key))
{
Telligent.Registration.LicenseInfo licenseInfo = (Telligent.Registration.LicenseInfo)currentLicenses[key];
p = new store_Product();
p.Name = licenseInfo.Name;
p.LicenseType = key;
p.Description = String.Empty;
p.Price = -1;
p.ProductURL = String.Empty;
products.Add(p);
licenseKeys[key] = true;
}
}
return products;
}
#endregion
#region Event Handlers
private void UploadLicense_Click(Object sender, System.EventArgs e)
{
if (LicenseFile.PostedFile == null || LicenseFile.PostedFile.ContentLength == 0 || LicenseFile.PostedFile.FileName.ToUpper().IndexOf(".XML") == -1)
{
Status.Success = false;
Status.IsLicenseMessage = false;
Status.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_InvalidLicenseFile");
Status.Visible = true;
return;
}
try
{
byte[] content = new byte[LicenseFile.PostedFile.ContentLength];
LicenseFile.PostedFile.InputStream.Read(content, 0, LicenseFile.PostedFile.ContentLength);
System.Text.Encoding encoding = new System.Text.UTF8Encoding(true, true);
string license = encoding.GetString(content).Trim();
Telligent.Registration.Licensing.UpdateLicense(license);
Status.Success = true;
Status.IsLicenseMessage = false;
Status.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_LicenseInstalled");
Status.Visible = true;
try
{
currentLicenses = Telligent.Registration.Licensing.GetCurrentLicenses();
}
catch (Exception)// ex)
{
throw new CSException(CSExceptionType.LicenseAccessError, "An error occured while retrieving license information"); //, ex);
}
DataBind();
}
catch(CSException ex)
{
Status.Success = false;
Status.IsLicenseMessage = false;
if(ex.InnerException == null)
Status.Text = String.Format(ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_LicenseError"), ex.Message);
else
Status.Text = String.Format(ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_LicenseError"), ex.InnerException.Message);
Status.Visible = true;
}
}
private void Products_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
switch ( e.Item.ItemType )
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
store_Product product = (store_Product) e.Item.DataItem;
HyperLink productName = (HyperLink) e.Item.FindControl("ProductName");
Literal productDescription = (Literal) e.Item.FindControl("ProductDescription");
Literal productLicenseInstalled = (Literal) e.Item.FindControl("ProductLicenseInstalled");
HyperLink moreInformation = (HyperLink) e.Item.FindControl("MoreInformation");
HyperLink purchase = (HyperLink) e.Item.FindControl("Purchase");
HyperLink support = (HyperLink) e.Item.FindControl("Support");
productName.Text = product.Name == null ? " " : product.Name;
productName.NavigateUrl = product.ProductURL == null ? String.Empty : product.ProductURL;
productName.Target = "_blank";
productDescription.Text = Globals.IsNullorEmpty(product.SecondaryDescription) ? String.Empty : product.SecondaryDescription;
bool isLicensed = false;
if (Globals.IsNullorEmpty(product.LicenseType))
{
productLicenseInstalled.Text = " ";
isLicensed = true;
}
else
{
object license = currentLicenses[product.LicenseType];
if (license != null)
{
Telligent.Registration.LicenseInfo licenseInfo = (Telligent.Registration.LicenseInfo) license;
string licenseLevel = (licenseInfo.Level != null) ? licenseInfo.Level : string.Empty;
string prodLevel = (licenseInfo.Level != null) ? licenseInfo.Level : string.Empty;
if (licenseLevel.IndexOf(":") != -1)
{
prodLevel = licenseLevel.Substring(licenseLevel.IndexOf(":") + 1);
licenseLevel = licenseLevel.Substring(0, licenseLevel.IndexOf(":"));
}
if (Globals.IsNullorEmpty(product.Level) || prodLevel.IndexOf(product.Level) != -1)
{
isLicensed = true;
if (!Globals.IsNullorEmpty(licenseLevel))
productLicenseInstalled.Text = ResourceManager.GetString("Yes") + " (" + licenseLevel + ", v" + licenseInfo.Version + ")";
else
productLicenseInstalled.Text = ResourceManager.GetString("Yes") + " (v" + licenseInfo.Version + ")";
if (licenseInfo.Expires != DateTime.MinValue)
productLicenseInstalled.Text += "<br />" + string.Format(ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_LicenseExpires"), licenseInfo.Expires.ToShortDateString());
}
else
productLicenseInstalled.Text = ResourceManager.GetString("No");
}
else
productLicenseInstalled.Text = ResourceManager.GetString("No");
}
if (!Globals.IsNullorEmpty(product.ProductURL))
{
moreInformation.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_MoreInformation");
moreInformation.NavigateUrl = product.ProductURL;
}
else
{
moreInformation.Visible = false;
if (e.Item.FindControl("MoreInformationDelimiter") != null)
e.Item.FindControl("MoreInformationDelimiter").Visible = false;
}
if (!Globals.IsNullorEmpty(product.PurchaseURL))
{
purchase.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_Purchase");
purchase.NavigateUrl = product.PurchaseURL;
}
else
{
purchase.Visible = false;
if (e.Item.FindControl("PurchaseDelimiter") != null)
e.Item.FindControl("PurchaseDelimiter").Visible = false;
}
if (!Globals.IsNullorEmpty(product.SupportURL) && isLicensed)
{
support.Text = ControlPanel.Components.ResourceManager.GetString("CP_Tools_ManageLicenses_Support");
support.NavigateUrl = product.SupportURL;
}
else
{
support.Visible = false;
if (e.Item.FindControl("SupportDelimiter") != null)
e.Item.FindControl("SupportDelimiter").Visible = false;
}
break;
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -