public static IRule CreateRule(string line) { IPRule ipRule = null; if (IPRule.CreateIPRule(line, out ipRule)) { return(ipRule); } HostRule hostRule = null; if (HostRule.CreateHostnameRule(line, out hostRule)) { return(hostRule); } return(null); }
private string GetLicenseSummary(ILicense license) { StringBuilder retVal = new StringBuilder(); retVal.AppendFormat("<b>Id: {0}</b><br />", license.Identifier); retVal.AppendFormat("<b>Created: {0}</b><br />", license.CreatedDate); retVal.AppendFormat("<b>Filename: {0}</b><br /><br />", license.Filename); int policynumber = 1; retVal.Append("<table>"); foreach (IPolicy ip in license.Policies.Where(p => p.GetType() == typeof(ADNSFPolicy))) { ADNSFPolicy aip = ip as ADNSFPolicy; String token = string.Empty; TokenPermission tp = aip.PermissionSet.Permissions.FirstOrDefault(p => p.GetType() == typeof(TokenPermission)) as TokenPermission; if (tp != null) { token = string.Join(" ", tp.Tokens); } retVal.Append("<tr><td><b>Policy " + policynumber++ + "</b></td><td><b>" + token + "</b></td></tr>"); retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Resource:", aip.ResourceIdentifier); foreach (IRule ir in ip.RuleSet.Rules.Where(r => r.GetType() == typeof(HostRule))) { HostRule hr = ir as HostRule; retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", CommonLogic.IIF(hr.Domains.Count() > 1, "Valid Hosts:", "Valid Host:"), String.Join("; ", hr.Domains) + ";"); } foreach (IRule ir in ip.RuleSet.Rules.Where(r => r.GetType() == typeof(LicenseRule))) { LicenseRule lr = ir as LicenseRule; retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Required License Filename:", lr.RequiredFileName); } foreach (IRule ir in ip.RuleSet.Rules.Where(r => r.GetType() == typeof(TimePeriodRule))) { TimePeriodRule tpr = ir as TimePeriodRule; retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Start Date:", tpr.BeginDate.ToShortDateString()); retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "End Date:", tpr.EndDate.ToShortDateString()); } foreach (IRule ir in ip.RuleSet.Rules.Where(r => r.GetType() == typeof(EnvironmentRule))) { EnvironmentRule er = ir as EnvironmentRule; if (!String.IsNullOrEmpty(er.MachineName)) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Required Machine Name:", er.MachineName); } if (!String.IsNullOrEmpty(er.OSVersion)) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Required OS Version:", er.OSVersion); } if (!String.IsNullOrEmpty(er.PlatformVersion)) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Required Platform Version:", er.PlatformVersion); } if (er.ProcessorCount > 0) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Required Processor Count:", er.ProcessorCount); } } foreach (IRule ir in ip.RuleSet.Rules.Where(r => r.GetType() == typeof(ADNSFLimitsRule))) { ADNSFLimitsRule lr = ir as ADNSFLimitsRule; if (lr.CategoryLimit > 0) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Category Limit:", lr.CategoryLimit); } if (lr.CustomerLimit > 0) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Customer Limit:", lr.CustomerLimit); } if (lr.OrderLimit > 0) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Order Limit:", lr.OrderLimit); } if (lr.ProductLimit > 0) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Product Limit:", lr.ProductLimit); } if (lr.SectionLimit > 0) { retVal.AppendFormat("<tr><td align=\"right\">{0}</td><td>{1}</td></tr>", "Section Limit:", lr.SectionLimit); } } } retVal.Append("</table>"); retVal.AppendLine("<br /><br />"); return(retVal.ToString()); }