예제 #1
0
        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);
                }
            }
        }