Beispiel #1
0
        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]);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }