diff --git a/src/AutoGenerated/releaseNotification.cs b/src/AutoGenerated/releaseNotification.cs index 6f0c4a6..38dc598 100644 --- a/src/AutoGenerated/releaseNotification.cs +++ b/src/AutoGenerated/releaseNotification.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Xml.Linq; #pragma warning disable 660,661 @@ -533,7 +534,7 @@ public partial class Condition public Condition(XElement element) { - Value = element.Elements().Where(e => e.Name == "Value").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + Value = element.Elements().Where(e => e.Name == "Value").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Unit = element.Elements().Where(e => e.Name == "Unit").Select(e => e.Value).SingleOrDefault(); RelationalRelator = element.Elements().Where(e => e.Name == "RelationalRelator").Select(e => e.Value).SingleOrDefault(); } @@ -850,7 +851,7 @@ public DealTerms(XElement element) IsExclusive = element.Elements().Where(e => e.Name == "IsExclusive").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); RelatedReleaseOfferSets = element.Elements().Where(e => e.Name == "RelatedReleaseOfferSet").Select(e => new RelatedReleaseOfferSet(e)).ToList(); PhysicalReturns = element.Elements().Where(e => e.Name == "PhysicalReturns").Select(e => new PhysicalReturns(e)).SingleOrDefault() ?? new NullPhysicalReturns(); - NumberOfProductsPerCarton = element.Elements().Where(e => e.Name == "NumberOfProductsPerCarton").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfProductsPerCarton = element.Elements().Where(e => e.Name == "NumberOfProductsPerCarton").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); RightsClaimPolicys = element.Elements().Where(e => e.Name == "RightsClaimPolicy").Select(e => new RightsClaimPolicy(e)).ToList(); WebPolicys = element.Elements().Where(e => e.Name == "WebPolicy").Select(e => new WebPolicy(e)).ToList(); LanguageAndScriptCode = element.Attributes().Where(e => e.Name == "LanguageAndScriptCode").Select(e => e.Value).SingleOrDefault(); @@ -1226,7 +1227,7 @@ public partial class PhysicalReturns public PhysicalReturns(XElement element) { PhysicalReturnsAllowed = element.Elements().Where(e => e.Name == "PhysicalReturnsAllowed").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); - LatestDateForPhysicalReturns = element.Elements().Where(e => e.Name == "LatestDateForPhysicalReturns").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value)).SingleOrDefault(); + LatestDateForPhysicalReturns = element.Elements().Where(e => e.Name == "LatestDateForPhysicalReturns").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public PhysicalReturns() @@ -1259,8 +1260,8 @@ public partial class PreviewDetails public PreviewDetails(XElement element) { PartType = element.Elements().Where(e => e.Name == "PartType").Select(e => new Description(e)).SingleOrDefault() ?? new NullDescription(); - TopLeftCorner = element.Elements().Where(e => e.Name == "TopLeftCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); - BottomRightCorner = element.Elements().Where(e => e.Name == "BottomRightCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + TopLeftCorner = element.Elements().Where(e => e.Name == "TopLeftCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + BottomRightCorner = element.Elements().Where(e => e.Name == "BottomRightCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); ExpressionType = element.Elements().Where(e => e.Name == "ExpressionType").Select(e => e.Value).SingleOrDefault(); } @@ -1407,7 +1408,7 @@ public ReleaseDeal(XElement element) { DealReleaseReferences = element.Elements().Where(e => e.Name == "DealReleaseReference").Select(e => e.Value).ToList(); Deals = element.Elements().Where(e => e.Name == "Deal").Select(e => new Deal(e)).ToList(); - EffectiveDate = element.Elements().Where(e => e.Name == "EffectiveDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value)).SingleOrDefault(); + EffectiveDate = element.Elements().Where(e => e.Name == "EffectiveDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); LanguageAndScriptCode = element.Attributes().Where(e => e.Name == "LanguageAndScriptCode").Select(e => e.Value).SingleOrDefault(); } @@ -1486,7 +1487,7 @@ public ReleaseDetailsByTerritory(XElement element) Keywords = element.Elements().Where(e => e.Name == "Keywords").Select(e => new Keywords(e)).ToList(); Synopsis = element.Elements().Where(e => e.Name == "Synopsis").Select(e => new Synopsis(e)).SingleOrDefault() ?? new NullSynopsis(); Characters = element.Elements().Where(e => e.Name == "Character").Select(e => new Character(e)).ToList(); - NumberOfUnitsPerPhysicalRelease = element.Elements().Where(e => e.Name == "NumberOfUnitsPerPhysicalRelease").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfUnitsPerPhysicalRelease = element.Elements().Where(e => e.Name == "NumberOfUnitsPerPhysicalRelease").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); LanguageAndScriptCode = element.Attributes().Where(e => e.Name == "LanguageAndScriptCode").Select(e => e.Value).SingleOrDefault(); } @@ -1581,7 +1582,7 @@ public partial class ResourceGroup public ResourceGroup(XElement element) { Titles = element.Elements().Where(e => e.Name == "Title").Select(e => new Title(e)).ToList(); - SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); DisplayArtists = element.Elements().Where(e => e.Name == "DisplayArtist").Select(e => new Artist(e)).ToList(); ResourceContributors = element.Elements().Where(e => e.Name == "ResourceContributor").Select(e => new ResourceContributor(e)).ToList(); IndirectResourceContributors = element.Elements().Where(e => e.Name == "IndirectResourceContributor").Select(e => new IndirectResourceContributor(e)).ToList(); @@ -1637,8 +1638,8 @@ public partial class ResourceGroupContentItem public ResourceGroupContentItem(XElement element) { - SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); - SequenceSubNumber = element.Elements().Where(e => e.Name == "SequenceSubNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + SequenceSubNumber = element.Elements().Where(e => e.Name == "SequenceSubNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); ResourceTypes = element.Elements().Where(e => e.Name == "ResourceType").Select(e => new ResourceType(e)).ToList(); ReleaseResourceReference = element.Elements().Where(e => e.Name == "ReleaseResourceReference").Select(e => new ReleaseResourceReference(e)).SingleOrDefault() ?? new NullReleaseResourceReference(); LinkedReleaseResourceReferences = element.Elements().Where(e => e.Name == "LinkedReleaseResourceReference").Select(e => new LinkedReleaseResourceReference(e)).ToList(); @@ -2272,11 +2273,11 @@ public partial class SoundRecordingPreviewDetails public SoundRecordingPreviewDetails(XElement element) { PartType = element.Elements().Where(e => e.Name == "PartType").Select(e => new Description(e)).SingleOrDefault() ?? new NullDescription(); - StartPoint = element.Elements().Where(e => e.Name == "StartPoint").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); - EndPoint = element.Elements().Where(e => e.Name == "EndPoint").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + StartPoint = element.Elements().Where(e => e.Name == "StartPoint").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + EndPoint = element.Elements().Where(e => e.Name == "EndPoint").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Duration = element.Elements().Where(e => e.Name == "Duration").Select(e => e.Value).SingleOrDefault(); - TopLeftCorner = element.Elements().Where(e => e.Name == "TopLeftCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); - BottomRightCorner = element.Elements().Where(e => e.Name == "BottomRightCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + TopLeftCorner = element.Elements().Where(e => e.Name == "TopLeftCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + BottomRightCorner = element.Elements().Where(e => e.Name == "BottomRightCorner").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); ExpressionType = element.Elements().Where(e => e.Name == "ExpressionType").Select(e => e.Value).SingleOrDefault(); } @@ -2333,9 +2334,9 @@ public TechnicalImageDetails(XElement element) ImageCodecType = element.Elements().Where(e => e.Name == "ImageCodecType").Select(e => new ImageCodecType(e)).SingleOrDefault() ?? new NullImageCodecType(); ImageHeight = element.Elements().Where(e => e.Name == "ImageHeight").Select(e => new Extent(e)).SingleOrDefault() ?? new NullExtent(); ImageWidth = element.Elements().Where(e => e.Name == "ImageWidth").Select(e => new Extent(e)).SingleOrDefault() ?? new NullExtent(); - AspectRatio = element.Elements().Where(e => e.Name == "AspectRatio").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); - ColorDepth = element.Elements().Where(e => e.Name == "ColorDepth").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); - ImageResolution = element.Elements().Where(e => e.Name == "ImageResolution").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + AspectRatio = element.Elements().Where(e => e.Name == "AspectRatio").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + ColorDepth = element.Elements().Where(e => e.Name == "ColorDepth").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + ImageResolution = element.Elements().Where(e => e.Name == "ImageResolution").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); IsPreview = element.Elements().Where(e => e.Name == "IsPreview").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); PreviewDetails = element.Elements().Where(e => e.Name == "PreviewDetails").Select(e => new PreviewDetails(e)).SingleOrDefault() ?? new NullPreviewDetails(); FulfillmentDate = element.Elements().Where(e => e.Name == "FulfillmentDate").Select(e => new FulfillmentDate(e)).SingleOrDefault() ?? new NullFulfillmentDate(); @@ -2410,7 +2411,7 @@ public TechnicalMidiDetails(XElement element) ConsumerFulfillmentDate = element.Elements().Where(e => e.Name == "ConsumerFulfillmentDate").Select(e => new FulfillmentDate(e)).SingleOrDefault() ?? new NullFulfillmentDate(); FileAvailabilityDescriptions = element.Elements().Where(e => e.Name == "FileAvailabilityDescription").Select(e => new Description(e)).ToList(); Files = element.Elements().Where(e => e.Name == "File").Select(e => new File(e)).ToList(); - NumberOfVoices = element.Elements().Where(e => e.Name == "NumberOfVoices").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfVoices = element.Elements().Where(e => e.Name == "NumberOfVoices").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); SoundProcessorType = element.Elements().Where(e => e.Name == "SoundProcessorType").Select(e => new SoundProcessorType(e)).SingleOrDefault() ?? new NullSoundProcessorType(); Fingerprints = element.Elements().Where(e => e.Name == "Fingerprint").Select(e => new Fingerprint(e)).ToList(); LanguageAndScriptCode = element.Attributes().Where(e => e.Name == "LanguageAndScriptCode").Select(e => e.Value).SingleOrDefault(); @@ -2596,9 +2597,9 @@ public TechnicalSoundRecordingDetails(XElement element) ContainerFormat = element.Elements().Where(e => e.Name == "ContainerFormat").Select(e => new ContainerFormat(e)).SingleOrDefault() ?? new NullContainerFormat(); AudioCodecType = element.Elements().Where(e => e.Name == "AudioCodecType").Select(e => new AudioCodecType(e)).SingleOrDefault() ?? new NullAudioCodecType(); BitRate = element.Elements().Where(e => e.Name == "BitRate").Select(e => new BitRate(e)).SingleOrDefault() ?? new NullBitRate(); - NumberOfChannels = element.Elements().Where(e => e.Name == "NumberOfChannels").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfChannels = element.Elements().Where(e => e.Name == "NumberOfChannels").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); SamplingRate = element.Elements().Where(e => e.Name == "SamplingRate").Select(e => new SamplingRate(e)).SingleOrDefault() ?? new NullSamplingRate(); - BitsPerSample = element.Elements().Where(e => e.Name == "BitsPerSample").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + BitsPerSample = element.Elements().Where(e => e.Name == "BitsPerSample").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Duration = element.Elements().Where(e => e.Name == "Duration").Select(e => e.Value).SingleOrDefault(); ResourceProcessingRequired = element.Elements().Where(e => e.Name == "ResourceProcessingRequired").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); UsableResourceDuration = element.Elements().Where(e => e.Name == "UsableResourceDuration").Select(e => e.Value).SingleOrDefault(); @@ -2807,14 +2808,14 @@ public TechnicalVideoDetails(XElement element) FrameRate = element.Elements().Where(e => e.Name == "FrameRate").Select(e => new FrameRate(e)).SingleOrDefault() ?? new NullFrameRate(); ImageHeight = element.Elements().Where(e => e.Name == "ImageHeight").Select(e => new Extent(e)).SingleOrDefault() ?? new NullExtent(); ImageWidth = element.Elements().Where(e => e.Name == "ImageWidth").Select(e => new Extent(e)).SingleOrDefault() ?? new NullExtent(); - AspectRatio = element.Elements().Where(e => e.Name == "AspectRatio").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); - ColorDepth = element.Elements().Where(e => e.Name == "ColorDepth").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + AspectRatio = element.Elements().Where(e => e.Name == "AspectRatio").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + ColorDepth = element.Elements().Where(e => e.Name == "ColorDepth").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); VideoDefinitionType = element.Elements().Where(e => e.Name == "VideoDefinitionType").Select(e => e.Value).SingleOrDefault(); AudioCodecType = element.Elements().Where(e => e.Name == "AudioCodecType").Select(e => new AudioCodecType(e)).SingleOrDefault() ?? new NullAudioCodecType(); AudioBitRate = element.Elements().Where(e => e.Name == "AudioBitRate").Select(e => new BitRate(e)).SingleOrDefault() ?? new NullBitRate(); - NumberOfAudioChannels = element.Elements().Where(e => e.Name == "NumberOfAudioChannels").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfAudioChannels = element.Elements().Where(e => e.Name == "NumberOfAudioChannels").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); AudioSamplingRate = element.Elements().Where(e => e.Name == "AudioSamplingRate").Select(e => new SamplingRate(e)).SingleOrDefault() ?? new NullSamplingRate(); - AudioBitsPerSample = element.Elements().Where(e => e.Name == "AudioBitsPerSample").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + AudioBitsPerSample = element.Elements().Where(e => e.Name == "AudioBitsPerSample").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Duration = element.Elements().Where(e => e.Name == "Duration").Select(e => e.Value).SingleOrDefault(); ResourceProcessingRequired = element.Elements().Where(e => e.Name == "ResourceProcessingRequired").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); UsableResourceDuration = element.Elements().Where(e => e.Name == "UsableResourceDuration").Select(e => e.Value).SingleOrDefault(); @@ -3484,7 +3485,7 @@ public partial class AmountByUseAndDistributionChannelType public AmountByUseAndDistributionChannelType(XElement element) { - Amount = element.Elements().Where(e => e.Name == "Amount").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + Amount = element.Elements().Where(e => e.Name == "Amount").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); UseTypes = element.Elements().Where(e => e.Name == "UseType").Select(e => new UseType(e)).ToList(); UserInterfaceTypes = element.Elements().Where(e => e.Name == "UserInterfaceType").Select(e => new UserInterfaceType(e)).ToList(); DistributionChannelTypes = element.Elements().Where(e => e.Name == "DistributionChannelType").Select(e => new DistributionChannelType(e)).ToList(); @@ -3521,7 +3522,7 @@ public partial class AmountPerCollection public AmountPerCollection(XElement element) { - Amount = element.Elements().Where(e => e.Name == "Amount").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + Amount = element.Elements().Where(e => e.Name == "Amount").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); CollectionType = element.Elements().Where(e => e.Name == "CollectionType").Select(e => new CollectionType(e)).SingleOrDefault() ?? new NullCollectionType(); } @@ -3589,7 +3590,7 @@ public partial class AppliedRoyaltyRate public AppliedRoyaltyRate(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); ValueType = element.Attributes().Where(e => e.Name == "ValueType").Select(e => e.Value).SingleOrDefault(); RoyaltyRateType = element.Attributes().Where(e => e.Name == "RoyaltyRateType").Select(e => e.Value).SingleOrDefault(); Namespace = element.Attributes().Where(e => e.Name == "Namespace").Select(e => e.Value).SingleOrDefault(); @@ -3631,7 +3632,7 @@ public Artist(XElement element) PartyId = element.Elements().Where(e => e.Name == "PartyId").Select(e => new PartyId(e)).SingleOrDefault() ?? new NullPartyId(); PartyNames = element.Elements().Where(e => e.Name == "PartyName").Select(e => new PartyName(e)).ToList(); ArtistRoles = element.Elements().Where(e => e.Name == "ArtistRole").Select(e => new ArtistRole(e)).ToList(); - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public Artist() @@ -3771,7 +3772,7 @@ public partial class BitRate public BitRate(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); UnitOfMeasure = element.Attributes().Where(e => e.Name == "UnitOfMeasure").Select(e => e.Value).SingleOrDefault(); } @@ -3843,7 +3844,7 @@ public partial class CalculationType public CalculationType(XElement element) { Value = element.Value; - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public CalculationType() @@ -3986,7 +3987,7 @@ public Character(XElement element) PartyId = element.Elements().Where(e => e.Name == "PartyId").Select(e => new PartyId(e)).SingleOrDefault() ?? new NullPartyId(); PartyNames = element.Elements().Where(e => e.Name == "PartyName").Select(e => new PartyName(e)).ToList(); ResourceContributor = element.Elements().Where(e => e.Name == "ResourceContributor").Select(e => new ResourceContributor(e)).SingleOrDefault() ?? new NullResourceContributor(); - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public Character() @@ -4089,7 +4090,7 @@ public partial class CollectionCollectionReference public CollectionCollectionReference(XElement element) { - SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); CollectionCollectionReferenceProp = element.Elements().Where(e => e.Name == "CollectionCollectionReference").Select(e => e.Value).SingleOrDefault(); StartTime = element.Elements().Where(e => e.Name == "StartTime").Select(e => e.Value).SingleOrDefault(); Duration = element.Elements().Where(e => e.Name == "Duration").Select(e => e.Value).SingleOrDefault(); @@ -4128,7 +4129,7 @@ public partial class CollectionCollectionReferenceList public CollectionCollectionReferenceList(XElement element) { - NumberOfCollections = element.Elements().Where(e => e.Name == "NumberOfCollections").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfCollections = element.Elements().Where(e => e.Name == "NumberOfCollections").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); CollectionCollectionReferences = element.Elements().Where(e => e.Name == "CollectionCollectionReference").Select(e => new CollectionCollectionReference(e)).ToList(); } @@ -5048,7 +5049,7 @@ public partial class DeductionRate public DeductionRate(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); DeductionRateType = element.Attributes().Where(e => e.Name == "DeductionRateType").Select(e => e.Value).SingleOrDefault(); DeductionDescription = element.Attributes().Where(e => e.Name == "DeductionDescription").Select(e => e.Value).SingleOrDefault(); LanguageAndScriptCode = element.Attributes().Where(e => e.Name == "LanguageAndScriptCode").Select(e => e.Value).SingleOrDefault(); @@ -5322,7 +5323,7 @@ public partial class EventDate public EventDate(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (DateTime?)null : DateTime.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (DateTime?)null : DateTime.Parse(element.Value, CultureInfo.InvariantCulture); IsApproximate = element.Attributes().Where(e => e.Name == "IsApproximate").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); IsBefore = element.Attributes().Where(e => e.Name == "IsBefore").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); IsAfter = element.Attributes().Where(e => e.Name == "IsAfter").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); @@ -5412,7 +5413,7 @@ public partial class Extent public Extent(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); UnitOfMeasure = element.Attributes().Where(e => e.Name == "UnitOfMeasure").Select(e => e.Value).SingleOrDefault(); } @@ -5665,7 +5666,7 @@ public partial class FrameRate public FrameRate(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); UnitOfMeasure = element.Attributes().Where(e => e.Name == "UnitOfMeasure").Select(e => e.Value).SingleOrDefault(); } @@ -5696,7 +5697,7 @@ public partial class FulfillmentDate public FulfillmentDate(XElement element) { - FulfillmentDateProp = element.Elements().Where(e => e.Name == "FulfillmentDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value)).SingleOrDefault(); + FulfillmentDateProp = element.Elements().Where(e => e.Name == "FulfillmentDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); ResourceReleaseReferences = element.Elements().Where(e => e.Name == "ResourceReleaseReference").Select(e => e.Value).ToList(); } @@ -5799,7 +5800,7 @@ public partial class GuaranteedAmount public GuaranteedAmount(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); CurrencyCode = element.Attributes().Where(e => e.Name == "CurrencyCode").Select(e => e.Value).SingleOrDefault(); ReferenceUnit = element.Attributes().Where(e => e.Name == "ReferenceUnit").Select(e => e.Value).SingleOrDefault(); } @@ -6145,7 +6146,7 @@ public IndirectResourceContributor(XElement element) PartyId = element.Elements().Where(e => e.Name == "PartyId").Select(e => new PartyId(e)).SingleOrDefault() ?? new NullPartyId(); PartyNames = element.Elements().Where(e => e.Name == "PartyName").Select(e => new PartyName(e)).ToList(); IndirectResourceContributorRoles = element.Elements().Where(e => e.Name == "IndirectResourceContributorRole").Select(e => new MusicalWorkContributorRole(e)).ToList(); - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public IndirectResourceContributor() @@ -6553,8 +6554,8 @@ public partial class MessageNotificationPeriod public MessageNotificationPeriod(XElement element) { - StartDate = element.Elements().Where(e => e.Name == "StartDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value)).SingleOrDefault(); - EndDate = element.Elements().Where(e => e.Name == "EndDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value)).SingleOrDefault(); + StartDate = element.Elements().Where(e => e.Name == "StartDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); + EndDate = element.Elements().Where(e => e.Name == "EndDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public MessageNotificationPeriod() @@ -6815,7 +6816,7 @@ public MusicalWorkContributor(XElement element) PartyNames = element.Elements().Where(e => e.Name == "PartyName").Select(e => new PartyName(e)).ToList(); MusicalWorkContributorRoles = element.Elements().Where(e => e.Name == "MusicalWorkContributorRole").Select(e => new MusicalWorkContributorRole(e)).ToList(); SocietyAffiliations = element.Elements().Where(e => e.Name == "SocietyAffiliation").Select(e => new SocietyAffiliation(e)).ToList(); - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public MusicalWorkContributor() @@ -7033,7 +7034,7 @@ public partial class NumberOfDataMismatchItems public NumberOfDataMismatchItems(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (int?)null : int.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (int?)null : int.Parse(element.Value, CultureInfo.InvariantCulture); DataMismatchStatus = element.Attributes().Where(e => e.Name == "DataMismatchStatus").Select(e => e.Value).SingleOrDefault(); } @@ -7067,7 +7068,7 @@ public partial class NumberOfSubscribers public NumberOfSubscribers(XElement element) { - Quantity = element.Elements().Where(e => e.Name == "Quantity").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + Quantity = element.Elements().Where(e => e.Name == "Quantity").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); UseTypes = element.Elements().Where(e => e.Name == "UseType").Select(e => new UseType(e)).ToList(); UserInterfaceTypes = element.Elements().Where(e => e.Name == "UserInterfaceType").Select(e => new UserInterfaceType(e)).ToList(); DistributionChannelTypes = element.Elements().Where(e => e.Name == "DistributionChannelType").Select(e => new DistributionChannelType(e)).ToList(); @@ -7415,7 +7416,7 @@ public partial class Price public Price(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); CurrencyCode = element.Attributes().Where(e => e.Name == "CurrencyCode").Select(e => e.Value).SingleOrDefault(); } @@ -7446,7 +7447,7 @@ public partial class PriceConsumerPaidExcSalesTax public PriceConsumerPaidExcSalesTax(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); CurrencyCode = element.Attributes().Where(e => e.Name == "CurrencyCode").Select(e => e.Value).SingleOrDefault(); } @@ -7843,7 +7844,7 @@ public partial class RecordCompanyMarketShareData public RecordCompanyMarketShareData(XElement element) { ReleaseTypes = element.Elements().Where(e => e.Name == "ReleaseType").Select(e => new ReleaseType(e)).ToList(); - UnitsSoldTotal = element.Elements().Where(e => e.Name == "UnitsSoldTotal").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + UnitsSoldTotal = element.Elements().Where(e => e.Name == "UnitsSoldTotal").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); UseTypes = element.Elements().Where(e => e.Name == "UseType").Select(e => new UseType(e)).ToList(); UserInterfaceTypes = element.Elements().Where(e => e.Name == "UserInterfaceType").Select(e => new UserInterfaceType(e)).ToList(); DistributionChannelTypes = element.Elements().Where(e => e.Name == "DistributionChannelType").Select(e => new DistributionChannelType(e)).ToList(); @@ -8134,7 +8135,7 @@ public partial class ReleaseCollectionReferenceList public ReleaseCollectionReferenceList(XElement element) { - NumberOfCollections = element.Elements().Where(e => e.Name == "NumberOfCollections").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfCollections = element.Elements().Where(e => e.Name == "NumberOfCollections").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); ReleaseCollectionReferences = element.Elements().Where(e => e.Name == "ReleaseCollectionReference").Select(e => new ReleaseCollectionReference(e)).ToList(); } @@ -8600,7 +8601,7 @@ public ResourceContainedResourceReference(XElement element) { ResourceContainedResourceReferenceProp = element.Elements().Where(e => e.Name == "ResourceContainedResourceReference").Select(e => e.Value).SingleOrDefault(); DurationUsed = element.Elements().Where(e => e.Name == "DurationUsed").Select(e => e.Value).SingleOrDefault(); - StartPoint = element.Elements().Where(e => e.Name == "StartPoint").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + StartPoint = element.Elements().Where(e => e.Name == "StartPoint").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Purpose = element.Elements().Where(e => e.Name == "Purpose").Select(e => new Purpose(e)).SingleOrDefault() ?? new NullPurpose(); } @@ -8666,7 +8667,7 @@ public ResourceContributor(XElement element) PartyId = element.Elements().Where(e => e.Name == "PartyId").Select(e => new PartyId(e)).SingleOrDefault() ?? new NullPartyId(); PartyNames = element.Elements().Where(e => e.Name == "PartyName").Select(e => new PartyName(e)).ToList(); ResourceContributorRoles = element.Elements().Where(e => e.Name == "ResourceContributorRole").Select(e => new ResourceContributorRole(e)).ToList(); - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public ResourceContributor() @@ -8820,7 +8821,7 @@ public partial class ResourceMusicalWorkReference public ResourceMusicalWorkReference(XElement element) { - SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); DurationUsed = element.Elements().Where(e => e.Name == "DurationUsed").Select(e => e.Value).SingleOrDefault(); IsFragment = element.Elements().Where(e => e.Name == "IsFragment").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); ResourceMusicalWorkReferenceProp = element.Elements().Where(e => e.Name == "ResourceMusicalWorkReference").Select(e => e.Value).SingleOrDefault(); @@ -9116,7 +9117,7 @@ public RightsController(XElement element) RightsControllerRoles = element.Elements().Where(e => e.Name == "RightsControllerRole").Select(e => e.Value).ToList(); RightShareUnknown = element.Elements().Where(e => e.Name == "RightShareUnknown").Select(e => string.IsNullOrEmpty(e.Value) ? (bool?)null : bool.Parse(e.Value)).SingleOrDefault(); RightSharePercentage = element.Elements().Where(e => e.Name == "RightSharePercentage").Select(e => e.Value).SingleOrDefault(); - SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Attributes().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public RightsController() @@ -9190,7 +9191,7 @@ public partial class RoyaltyAmount public RoyaltyAmount(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); CurrencyCode = element.Attributes().Where(e => e.Name == "CurrencyCode").Select(e => e.Value).SingleOrDefault(); } @@ -9289,7 +9290,7 @@ public partial class SamplingRate public SamplingRate(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); UnitOfMeasure = element.Attributes().Where(e => e.Name == "UnitOfMeasure").Select(e => e.Value).SingleOrDefault(); } @@ -9681,7 +9682,7 @@ public partial class SoundRecordingCollectionReference public SoundRecordingCollectionReference(XElement element) { - SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + SequenceNumber = element.Elements().Where(e => e.Name == "SequenceNumber").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); SoundRecordingCollectionReferenceProp = element.Elements().Where(e => e.Name == "SoundRecordingCollectionReference").Select(e => e.Value).SingleOrDefault(); StartTime = element.Elements().Where(e => e.Name == "StartTime").Select(e => e.Value).SingleOrDefault(); Duration = element.Elements().Where(e => e.Name == "Duration").Select(e => e.Value).SingleOrDefault(); @@ -9720,7 +9721,7 @@ public partial class SoundRecordingCollectionReferenceList public SoundRecordingCollectionReferenceList(XElement element) { - NumberOfCollections = element.Elements().Where(e => e.Name == "NumberOfCollections").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfCollections = element.Elements().Where(e => e.Name == "NumberOfCollections").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); SoundRecordingCollectionReferences = element.Elements().Where(e => e.Name == "SoundRecordingCollectionReference").Select(e => new SoundRecordingCollectionReference(e)).ToList(); } @@ -10065,7 +10066,7 @@ public partial class Tax public Tax(XElement element) { - Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value); + Value = string.IsNullOrEmpty(element.Value) ? (decimal?)null : decimal.Parse(element.Value, CultureInfo.InvariantCulture); CurrencyCode = element.Attributes().Where(e => e.Name == "CurrencyCode").Select(e => e.Value).SingleOrDefault(); } @@ -10097,7 +10098,7 @@ public partial class TaxRate public TaxRate(XElement element) { - Rate = element.Elements().Where(e => e.Name == "Rate").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + Rate = element.Elements().Where(e => e.Name == "Rate").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); TaxTypes = element.Elements().Where(e => e.Name == "TaxType").Select(e => new TaxType(e)).ToList(); TaxScopes = element.Elements().Where(e => e.Name == "TaxScope").Select(e => new TaxScope(e)).ToList(); } @@ -10558,7 +10559,7 @@ public Usage(XElement element) DistributionChannelTypes = element.Elements().Where(e => e.Name == "DistributionChannelType").Select(e => new DistributionChannelType(e)).ToList(); CarrierTypes = element.Elements().Where(e => e.Name == "CarrierType").Select(e => new CarrierType(e)).ToList(); TechnicalInstantiation = element.Elements().Where(e => e.Name == "TechnicalInstantiation").Select(e => new TechnicalInstantiation(e)).SingleOrDefault() ?? new NullTechnicalInstantiation(); - NumberOfUsages = element.Elements().Where(e => e.Name == "NumberOfUsages").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value)).SingleOrDefault(); + NumberOfUsages = element.Elements().Where(e => e.Name == "NumberOfUsages").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); } public Usage() diff --git a/src/AutoGenerated/vehicles.cs b/src/AutoGenerated/vehicles.cs index 6bff772..0f2263c 100644 --- a/src/AutoGenerated/vehicles.cs +++ b/src/AutoGenerated/vehicles.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Xml.Linq; #pragma warning disable 660,661 @@ -37,13 +38,13 @@ internal class NullVehicles : Vehicles public partial class Color { public virtual string Hue { get; set; } - public virtual decimal? Rgb { get; set; } + public virtual int? Rgb { get; set; } public virtual ColorDescription Description { get; set; } public Color(XElement element) { Hue = element.Elements().Where(e => e.Name == "hue").Select(e => e.Value).SingleOrDefault(); - Rgb = element.Elements().Where(e => e.Name == "rgb").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value)).SingleOrDefault(); + Rgb = element.Elements().Where(e => e.Name == "rgb").Select(e => string.IsNullOrEmpty(e.Value) ? (int?)null : int.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Description = element.Elements().Where(e => e.Name == "description").Select(e => new ColorDescription(e)).SingleOrDefault() ?? new NullColorDescription(); } @@ -64,7 +65,7 @@ public Color() internal class NullColor : Color { public override string Hue { get { throw this.NullAccess("Hue"); } } - public override decimal? Rgb { get { throw this.NullAccess("Rgb"); } } + public override int? Rgb { get { throw this.NullAccess("Rgb"); } } public override ColorDescription Description { get { throw this.NullAccess("Description"); } } } @@ -73,13 +74,15 @@ public partial class Car public virtual string Brand { get; set; } public virtual DateTime? ProductionDate { get; set; } public virtual ManufacturerName Manufacturer { get; set; } + public virtual decimal? ModelVersion { get; set; } public virtual Color Color { get; set; } public Car(XElement element) { Brand = element.Elements().Where(e => e.Name == "brand").Select(e => e.Value).SingleOrDefault(); - ProductionDate = element.Elements().Where(e => e.Name == "productionDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value)).SingleOrDefault(); + ProductionDate = element.Elements().Where(e => e.Name == "productionDate").Select(e => string.IsNullOrEmpty(e.Value) ? (DateTime?)null : DateTime.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Manufacturer = element.Elements().Where(e => e.Name == "manufacturer").Select(e => new ManufacturerName(e)).SingleOrDefault() ?? new NullManufacturerName(); + ModelVersion = element.Elements().Where(e => e.Name == "modelVersion").Select(e => string.IsNullOrEmpty(e.Value) ? (decimal?)null : decimal.Parse(e.Value, CultureInfo.InvariantCulture)).SingleOrDefault(); Color = element.Elements().Where(e => e.Name == "color").Select(e => new Color(e)).SingleOrDefault() ?? new NullColor(); } @@ -102,6 +105,7 @@ internal class NullCar : Car public override string Brand { get { throw this.NullAccess("Brand"); } } public override DateTime? ProductionDate { get { throw this.NullAccess("ProductionDate"); } } public override ManufacturerName Manufacturer { get { throw this.NullAccess("Manufacturer"); } } + public override decimal? ModelVersion { get { throw this.NullAccess("ModelVersion"); } } public override Color Color { get { throw this.NullAccess("Color"); } } } diff --git a/src/SevenDigital.Parsing.XsdToObject.Tests/ClassGeneratorTest.cs b/src/SevenDigital.Parsing.XsdToObject.Tests/ClassGeneratorTest.cs index 2066cca..ab57e9a 100644 --- a/src/SevenDigital.Parsing.XsdToObject.Tests/ClassGeneratorTest.cs +++ b/src/SevenDigital.Parsing.XsdToObject.Tests/ClassGeneratorTest.cs @@ -34,11 +34,12 @@ public void ShouldHaveCar() { ClassInfo car = _classes.Single(c => c.XmlName == "car"); - Assert.That(car.Elements.Count, Is.EqualTo(4)); + Assert.That(car.Elements.Count, Is.EqualTo(5)); GeneratorAssertHelper.AssertStringProperty(car, "brand", false, "Brand"); GeneratorAssertHelper.AssertBindedProperty(car, "color", "color", false, "Color", "Color"); GeneratorAssertHelper.AssertBindedProperty(car, "manufacturer", "manufacturerName", false, "Manufacturer", "ManufacturerName"); GeneratorAssertHelper.AssertProperty(car, "productionDate", "date", false, "ProductionDate", "DateTime?", false); + GeneratorAssertHelper.AssertProperty(car, "modelVersion", "decimal", false, "ModelVersion", "decimal?", false); } [Test] @@ -48,7 +49,7 @@ public void ShouldHaveColor() Assert.That(color.Elements.Count, Is.EqualTo(3)); GeneratorAssertHelper.AssertStringProperty(color, "hue", false, "Hue"); - GeneratorAssertHelper.AssertProperty(color, "rgb", "decimal", false, "Rgb", "decimal?", false); + GeneratorAssertHelper.AssertProperty(color, "rgb", "int", false, "Rgb", "int?", false); GeneratorAssertHelper.AssertBindedProperty(color, "description", "colorDescription", false, "Description", "ColorDescription"); } diff --git a/src/SevenDigital.Parsing.XsdToObject.Tests/res/schema.xsd b/src/SevenDigital.Parsing.XsdToObject.Tests/res/schema.xsd index e82cd94..341be49 100644 --- a/src/SevenDigital.Parsing.XsdToObject.Tests/res/schema.xsd +++ b/src/SevenDigital.Parsing.XsdToObject.Tests/res/schema.xsd @@ -12,11 +12,12 @@ + - + diff --git a/src/SevenDigital.Parsing.XsdToObject.Tests/res/xml.xml b/src/SevenDigital.Parsing.XsdToObject.Tests/res/xml.xml index b6d324b..1c547a6 100644 --- a/src/SevenDigital.Parsing.XsdToObject.Tests/res/xml.xml +++ b/src/SevenDigital.Parsing.XsdToObject.Tests/res/xml.xml @@ -2,21 +2,23 @@ BMW - 2008-10-25 + 2008-10-25 black This is the text - + - BMW UK + BMW UK + 2.1 Honda red - 16711680 + 16711680 UK Manufacturing Ltd + 1.0 \ No newline at end of file diff --git a/src/SevenDigital.Parsing.XsdToObject/ClassWriter.cs b/src/SevenDigital.Parsing.XsdToObject/ClassWriter.cs index 5b74dfb..4beb415 100644 --- a/src/SevenDigital.Parsing.XsdToObject/ClassWriter.cs +++ b/src/SevenDigital.Parsing.XsdToObject/ClassWriter.cs @@ -45,6 +45,7 @@ private void WriteUsings() { _writer.WriteLine("using System;"); _writer.WriteLine("using System.Collections.Generic;"); + _writer.WriteLine("using System.Globalization;"); _writer.WriteLine("using System.Linq;"); _writer.WriteLine("using System.Xml.Linq;"); _writer.WriteLine("#pragma warning disable 660,661"); @@ -168,7 +169,7 @@ private void WritePropertyInitialization(StreamWriter writer, PropertyInfo prope private void WriteValuePropertyInitialization(StreamWriter writer, PropertyInfo property) { var instanceCreation = property.IsParsable - ? GetParsedPropertyValue(property,"element") + ? GetParsedPropertyValue(property, "element") : "element.Value"; writer.WriteLine("\t\t\t{0} = {1};", property.GetCodeName(), instanceCreation); @@ -178,7 +179,7 @@ private string GetPropertyValueRetriever(PropertyInfo property, string collectio { string instanceCreation = property.IsParsable ? GetParsedPropertyValue(property, "e") - : GetXElementToPropertyValue(property,"e"); + : GetXElementToPropertyValue(property, "e"); return string.Format("element.{0}().Where(e => e.Name == \"{1}\").Select(e => {2})", collectionName, @@ -188,7 +189,12 @@ private string GetPropertyValueRetriever(PropertyInfo property, string collectio private static string GetParsedPropertyValue(PropertyInfo property, string variableName) { - return string.Format("string.IsNullOrEmpty({0}.Value) ? ({1})null : {2}.Parse({0}.Value)", variableName, property.GetCodeType(), property.GetCodeType().TrimEnd('?')); + var valueToParse = variableName + ".Value"; + + return string.Format("string.IsNullOrEmpty({0}) ? ({1})null : {2}", + valueToParse, + property.GetCodeType(), + TypeUtils.GetParsableType(property.XmlType).ConstructParseCall(valueToParse)); } private string GetPropertyValueAccessorMethod(PropertyInfo property) diff --git a/src/SevenDigital.Parsing.XsdToObject/ParsableType.cs b/src/SevenDigital.Parsing.XsdToObject/ParsableType.cs new file mode 100644 index 0000000..61865ed --- /dev/null +++ b/src/SevenDigital.Parsing.XsdToObject/ParsableType.cs @@ -0,0 +1,31 @@ +using System; + +namespace SevenDigital.Parsing.XsdToObject +{ + public class ParsableType + { + private readonly string _parseCallFormat; + + public ParsableType(string xmlTypeName, string netTypeName, Type type) + { + XmlTypeName = xmlTypeName; + NetTypeName = netTypeName; + _parseCallFormat = FormatParseCall(type); + } + + private string FormatParseCall(Type type) + { + var formatParseCall = type.GetMethod("Parse", new[] { typeof(string), typeof(IFormatProvider) }) != null + ? ".Parse({0}, CultureInfo.InvariantCulture)" + : ".Parse({0})"; + return NetTypeName.TrimEnd('?') + formatParseCall; + } + + public string XmlTypeName { get; private set; } + public string NetTypeName { get; private set; } + public string ConstructParseCall(string value) + { + return string.Format(_parseCallFormat, value); + } + } +} \ No newline at end of file diff --git a/src/SevenDigital.Parsing.XsdToObject/PropertyInfo.cs b/src/SevenDigital.Parsing.XsdToObject/PropertyInfo.cs index 27e9794..c225aba 100644 --- a/src/SevenDigital.Parsing.XsdToObject/PropertyInfo.cs +++ b/src/SevenDigital.Parsing.XsdToObject/PropertyInfo.cs @@ -26,7 +26,7 @@ public string GetCodeName() public string GetCodeType() { - string type = BindedType != null ? BindedType.GetCodeName() : TypeUtils.ToCodeType(XmlType); + string type = BindedType != null ? BindedType.GetCodeName() : TypeUtils.ToNetTypeName(XmlType); return !IsList ? type : string.Format("IList<{0}>", type); } diff --git a/src/SevenDigital.Parsing.XsdToObject/SevenDigital.Parsing.XsdToObject.csproj b/src/SevenDigital.Parsing.XsdToObject/SevenDigital.Parsing.XsdToObject.csproj index 1250dd7..4d654a7 100644 --- a/src/SevenDigital.Parsing.XsdToObject/SevenDigital.Parsing.XsdToObject.csproj +++ b/src/SevenDigital.Parsing.XsdToObject/SevenDigital.Parsing.XsdToObject.csproj @@ -43,6 +43,7 @@ + diff --git a/src/SevenDigital.Parsing.XsdToObject/TypeUtils.cs b/src/SevenDigital.Parsing.XsdToObject/TypeUtils.cs index 9ae31a2..21c169e 100644 --- a/src/SevenDigital.Parsing.XsdToObject/TypeUtils.cs +++ b/src/SevenDigital.Parsing.XsdToObject/TypeUtils.cs @@ -1,30 +1,43 @@ +using System; using System.Collections.Generic; namespace SevenDigital.Parsing.XsdToObject { public static class TypeUtils { - private static readonly IDictionary _parsableTypesMap = new Dictionary + private static readonly IDictionary _parsableTypesMap = new Dictionary(); + + static TypeUtils() + { + AddType("boolean", "bool?", typeof(bool)); + AddType("integer", "int?", typeof(int)); + AddType("int", "int?", typeof(int)); + AddType("decimal", "decimal?", typeof(decimal)); + AddType("dateTime", "DateTime?", typeof(DateTime)); + AddType("date", "DateTime?", typeof(DateTime)); + } + + private static void AddType(string xmlTypeName, string codeTypeName, Type netType) { - {"boolean","bool?"}, - {"integer","int?"}, - {"int","int?"}, - {"decimal","decimal?"}, - {"dateTime","DateTime?"}, - {"date","DateTime?"} - }; + _parsableTypesMap.Add(xmlTypeName, new ParsableType(xmlTypeName, codeTypeName, netType)); + } public static bool IsParsable(string xmlType) { return _parsableTypesMap.ContainsKey(xmlType.ToLower()); } - public static string ToCodeType(string xmlType) + public static ParsableType GetParsableType(string xmlType) + { + return _parsableTypesMap[xmlType]; + } + + public static string ToNetTypeName(string xmlType) { - string result; + ParsableType result; return _parsableTypesMap.TryGetValue(xmlType.ToLower(), out result) - ? result - : xmlType; + ? result.NetTypeName + : xmlType; } public static bool IsSimpleType(string xmlType)