public QueryPolicy(SearchResultEntry pol) { DN = pol.DistinguishedName; List <string> pnames = this.GetPropertyNames(true); DateTime temp; string value = ""; pol.GetStringAttributeSafe("whenCreated", out value); if (DateTime.TryParseExact(value, ForestBase.GENERALIZED_TIME_FORMAT, CultureInfo.CurrentCulture, DateTimeStyles.NoCurrentDateDefault, out temp)) { WhenCreated = (temp < DateTime.FromFileTimeUtc(0)) ? DateTime.FromFileTimeUtc(0) : temp; } else { WhenCreated = DateTime.FromFileTimeUtc(0); } pol.GetStringAttributeSafe("lDAPAdminLimits", out limits); foreach (string item in limits) { string limitname = item.Split(new char[] { '=' })[0].Trim(); string limitval = item.Split(new char[] { '=' })[1].Trim(); string prop = pnames.GetMatchingItem(limitname); if (prop.Length > 0) { int numval = 0; int.TryParse(limitval, out numval); this.SetPropertyValue(prop, numval); } } }