private IEnumerable <FieldData> GetFieldData(IItemVariantIdentifier identifier, ItemModel itemModel) { var language = itemModel.GetLanguage(identifier.Language); var version = language.GetVersion(identifier.Version); var invariantFields = itemModel.Fields.Select(field => new FieldData( field.Id, identifier.Id, field.Value, VarianceInfo.Invariant)); var languageVariantFields = language.Fields.Select(field => new FieldData( field.Id, identifier.Id, field.Value, VarianceInfo.LanguageVariant(language.Language))); var variantFields = version.Fields.Select(field => new FieldData( field.Id, identifier.Id, field.Value, VarianceInfo.Variant(language.Language, version.Number))); return(invariantFields.Union(languageVariantFields).Union(variantFields)); }