private static void SetCommonProperties(UnifiedPolicyTrace trace, ConfigurablePropertyBag dataObject)
 {
     dataObject[UnifiedPolicyCommonSchema.OrganizationalUnitRootProperty] = trace.OrganizationalUnitRoot;
     dataObject[UnifiedPolicyCommonSchema.ObjectIdProperty]   = trace.ObjectId;
     dataObject[UnifiedPolicyCommonSchema.DataSourceProperty] = trace.DataSource;
     dataObject[UnifiedPolicyCommonSchema.HashBucketProperty] = trace[UnifiedPolicyCommonSchema.HashBucketProperty];
 }
예제 #2
0
        protected void FixOrganizationalUnitRoot(IConfigurable configurable)
        {
            ADObject adobject = configurable as ADObject;

            if (adobject != null)
            {
                if (adobject.OrganizationalUnitRoot == null)
                {
                    adobject[ADObjectSchema.OrganizationalUnitRoot] = this.TenantId;
                    return;
                }
            }
            else
            {
                ConfigurablePropertyBag configurablePropertyBag = configurable as ConfigurablePropertyBag;
                if (configurablePropertyBag != null)
                {
                    configurablePropertyBag[ADObjectSchema.OrganizationalUnitRoot] = this.TenantId;
                    return;
                }
                ConfigurableObject configurableObject = configurable as ConfigurableObject;
                if (configurableObject != null)
                {
                    configurableObject[ADObjectSchema.OrganizationalUnitRoot] = this.TenantId;
                }
            }
        }
예제 #3
0
        protected void GenerateIdForObject(IConfigurable configurable)
        {
            ADObject adobject = configurable as ADObject;

            if (adobject != null)
            {
                if (adobject.Id != null && adobject.Id.ObjectGuid == Guid.Empty && !(adobject is ADConfigurationObject))
                {
                    adobject.SetId(new ADObjectId(adobject.Id.DistinguishedName, CombGuidGenerator.NewGuid()));
                }
                if ((adobject is TransportRule || adobject is Container) && adobject.Id != null && string.IsNullOrEmpty(adobject.Name))
                {
                    adobject.Name = (adobject.Id.Name ?? adobject.Id.ObjectGuid.ToString());
                    return;
                }
            }
            else
            {
                ConfigurablePropertyBag configurablePropertyBag = configurable as ConfigurablePropertyBag;
                if (configurablePropertyBag != null)
                {
                    if (configurablePropertyBag is UserCertificate)
                    {
                        configurablePropertyBag[UserCertificate.UserCertificateIdProp] = CombGuidGenerator.NewGuid();
                        configurablePropertyBag[UserCertificate.CertificateIdProp]     = CombGuidGenerator.NewGuid();
                    }
                    if (configurablePropertyBag is PartnerCertificate)
                    {
                        configurablePropertyBag[PartnerCertificate.PartnerCertificateIdDef] = CombGuidGenerator.NewGuid();
                        configurablePropertyBag[PartnerCertificate.PartnerIdDef]            = CombGuidGenerator.NewGuid();
                        configurablePropertyBag[PartnerCertificate.CertificateIdDef]        = CombGuidGenerator.NewGuid();
                        return;
                    }
                }
                else
                {
                    ConfigurableObject configurableObject = configurable as ConfigurableObject;
                    if (configurableObject != null)
                    {
                        return;
                    }
                    throw new ArgumentException("IConfigurable object must be driven from ADObject, ConfigurableObject, or ConfigurablePropertyBag");
                }
            }
        }
예제 #4
0
        public void SavePartnerCertificate(string certificateSubjectName)
        {
            if (string.IsNullOrEmpty(certificateSubjectName))
            {
                throw new ArgumentNullException("certificateSubjectName");
            }
            PartnerCertificate partnerCertificate = new PartnerCertificate(this.callerId, certificateSubjectName);

            if (string.IsNullOrEmpty(this.partnerName))
            {
                partnerCertificate.PartnerName = this.partnerName;
            }
            ConfigurablePropertyBag configurablePropertyBag = partnerCertificate;

            if (configurablePropertyBag != null)
            {
                configurablePropertyBag[PartnerCertificate.PartnerCertificateIdDef] = this.GenerateNewGuid();
                configurablePropertyBag[PartnerCertificate.PartnerIdDef]            = this.GenerateNewGuid();
                configurablePropertyBag[PartnerCertificate.CertificateIdDef]        = this.GenerateNewGuid();
            }
            PartnerConfigSession.dataProvider.Save(partnerCertificate);
        }
예제 #5
0
        public static string ConvertToString(this ConfigurablePropertyBag configurableObj)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("{0}- ", configurableObj.GetType().Name);
            foreach (PropertyDefinition propertyDefinition in configurableObj.GetPropertyDefinitions(false))
            {
                if (propertyDefinition == DomainSchema.PropertiesAsId)
                {
                    stringBuilder.Append("Properties(EntityId:PropertyId:PropertyValue)=");
                    Dictionary <int, Dictionary <int, string> > dictionary = configurableObj[DomainSchema.PropertiesAsId] as Dictionary <int, Dictionary <int, string> >;
                    if (dictionary != null)
                    {
                        stringBuilder.Append(dictionary.ConvertToString());
                    }
                }
                else
                {
                    stringBuilder.AppendFormat("{0}={1}, ", propertyDefinition.Name, configurableObj[propertyDefinition]);
                }
            }
            return(stringBuilder.ToString());
        }
 private static void PopulateRow(DataRow row, HygienePropertyDefinition[] columns, ConfigurablePropertyBag dataSource)
 {
     if (columns == null)
     {
         throw new ArgumentNullException("columns");
     }
     for (int i = 0; i < columns.Length; i++)
     {
         HygienePropertyDefinition hygienePropertyDefinition = columns[i];
         if (hygienePropertyDefinition != null && !hygienePropertyDefinition.IsCalculated)
         {
             object obj = dataSource[hygienePropertyDefinition];
             if (obj != hygienePropertyDefinition.DefaultValue)
             {
                 row[i] = obj;
             }
         }
     }
 }