示例#1
0
        /// <summary>
        /// zet alle waardes van een DataItemLanguage regel in de DataItem
        /// Hierdoor kunnen dezelfde velden worden gebruikt in de dataModule
        /// </summary>
        /// <param name="languageCode"></param>
        public void Translate(string languageCode)
        {
            if (DataCollection.HasStaticLanguage || languageCode == Site.DefaultLanguage)
            {
                return;
            }
            string where = "FK_DataItem='" + this.ID + "' AND LanguageCode ='" + languageCode + "'";
            DataItemLanguage itemLanguage = DataItemLanguage.GetFirst <DataItemLanguage>(where);

            if (itemLanguage == null)
            {
                return;
            }
            this.Title = itemLanguage.Title;
            foreach (DataField fld in this.DataCollection.DataItemFields)
            {
                if (fld.IsMultiLanguageField)
                {
                    if (fld.FieldType != FieldTypeEnum.ImageList &&
                        fld.FieldType != FieldTypeEnum.FileList &&
                        fld.FieldType != FieldTypeEnum.DropDown)
                    {
                        System.Reflection.PropertyInfo propItem = this.GetType().GetProperty(fld.MappingColumn);

                        System.Reflection.PropertyInfo propLanguage = itemLanguage.GetType().GetProperty(fld.MappingColumn);

                        Object valueLanguage = propLanguage.GetValue(itemLanguage, null);
                        propItem.SetValue(this, valueLanguage, null);
                    }
                    else if (fld.FieldType == FieldTypeEnum.ImageList)
                    {
                        _imageList1 = BaseCollection <DataFile> .Get("Type = '" + DataFile.TYPE_EXTRA_IMAGE + "' AND FK_Item='" + this.ID + "' AND Language='" + languageCode + "'", "Name");

                        _imageList1.IsLoaded = true;
                    }
                    else if (fld.FieldType == FieldTypeEnum.FileList)
                    {
                        _imageList1 = BaseCollection <DataFile> .Get("Type = '" + DataFile.TYPE_EXTRA_FILE + "' AND FK_Item='" + this.ID + "' AND Language='" + languageCode + "'", "Name");

                        _imageList1.IsLoaded = true;
                    }
                    else if (fld.FieldType == FieldTypeEnum.DropDown)
                    {
                        //todo
                    }
                }
            }
        }