private void CreateProperties <T>(Class @class, Object @object, T domainObject) where T : DomainObject { foreach (PropertyInfo propertyInfo in typeof(T).GetProperties().Where(pi => pi.PropertyType == typeof(DomainProperty))) { DomainProperty domainProperty = propertyInfo.GetValue(domainObject) as DomainProperty; if (domainProperty != null) { Member member = this.handler.Storage.GetRepository <IMemberRepository>().WithClassIdAndCode(@class.Id, propertyInfo.Name); if (member == null && @class.ClassId != null) { member = this.handler.Storage.GetRepository <IMemberRepository>().WithClassIdAndCode((int)@class.ClassId, propertyInfo.Name); } if (member != null) { foreach (string cultureCode in domainProperty.Keys) { this.CreateProperty(@object.Id, member.Id, cultureCode, domainProperty[cultureCode]); } } } } }
private void ProcessProperty(DomainObject domainObject, Object @object, Member member) { PropertyInfo propertyInfo = domainObject.GetType().GetProperty(member.Code); if (propertyInfo == null || propertyInfo.PropertyType != typeof(DomainProperty)) { return; } DomainProperty domainProperty = this.CreateDomainProperty( this.handler.Storage.GetRepository <IPropertyRepository>().WithObjectIdAndMemberId(@object.Id, member.Id) ); propertyInfo.SetValue(domainObject, domainProperty); }
private DomainProperty CreateDomainProperty(Property property) { DomainProperty domainProperty = new DomainProperty(); if (property != null) { foreach (Culture culture in CultureManager.GetCultures(this.handler.Storage)) { Localization localization = this.handler.Storage.GetRepository <ILocalizationRepository>().WithDictionaryIdAndCultureId(property.HtmlId, culture.Id); domainProperty.Add(culture.Code, localization?.Value); } } return(domainProperty); }