public void Test_Serialize_UInt64() { var serializer = new TypeSerializer(new ManualByteConverter()); UInt64 data = 9; var expected = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09 }; var actual = serializer.Serialize(data); Assert.AreEqual(expected, actual); }
public void Test_Timed_Execution() { var converter = new AutoByteConverter(); var serializer = new TypeSerializer(converter); var vbucket = GetVBucket(); int n = 1000; //set to a higher # if needed using (new OperationTimer()) { var key = string.Format("key{0}", 111); var set = new Set<int>(key, 111, vbucket, converter); var get = new Get<int>(key, vbucket, converter, serializer); for (var i = 0; i < n; i++) { var result = IOStrategy.Execute(set); Assert.IsTrue(result.Success); var result1 = IOStrategy.Execute(get); Assert.IsTrue(result1.Success); Assert.AreEqual(111, result1.Value); } } }
public void Test_Timed_Execution_Parallel() { var options = new ParallelOptions { MaxDegreeOfParallelism = 4 }; var converter = new AutoByteConverter(); var serializer = new TypeSerializer(converter); var vbucket = GetVBucket(); var n = 1000;//set to a higher # if needed using (new OperationTimer()) { Parallel.For(0, n, options, i => { var key = string.Format("key{0}", i); var set = new Set<int>(key, i, vbucket, converter); var result = IOStrategy.Execute(set); Assert.IsTrue(result.Success); var get = new Get<int>(key, vbucket, converter, serializer); var result1 = IOStrategy.Execute(get); Assert.IsTrue(result1.Success); Assert.AreEqual(i, result1.Value); }); } }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SetIdCm0 = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; SponsorStudyId = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[2], false, seps) : null; AlternateStudyId = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <EntityIdentifier>(x, false, seps)) : null; TitleOfStudy = segments.Length > 4 && segments[4].Length > 0 ? segments[4] : null; ChairmanOfStudy = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; LastIrbApprovalDate = segments.Length > 6 && segments[6].Length > 0 ? segments[6].ToNullableDateTime() : null; TotalAccrualToDate = segments.Length > 7 && segments[7].Length > 0 ? segments[7].ToNullableDecimal() : null; LastAccrualDate = segments.Length > 8 && segments[8].Length > 0 ? segments[8].ToNullableDateTime() : null; ContactForStudy = segments.Length > 9 && segments[9].Length > 0 ? segments[9].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; ContactsTelephoneNumber = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[10], false, seps) : null; ContactsAddress = segments.Length > 11 && segments[11].Length > 0 ? segments[11].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedAddress>(x, false, seps)) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SetIdAl1 = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; AllergenTypeCode = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[2], false, seps) : null; AllergenCodeMnemonicDescription = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; AllergySeverityCode = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[4], false, seps) : null; AllergyReactionCode = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; IdentificationDate = segments.Length > 6 && segments[6].Length > 0 ? segments[6].ToNullableDateTime() : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } NotificationReferenceNumber = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableDecimal() : null; NotificationDateTime = segments.Length > 2 && segments[2].Length > 0 ? segments[2].ToNullableDateTime() : null; NotificationAlertSeverity = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; NotificationCode = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[4], false, seps) : null; }
public static string ToSafeJson <T>(this T obj) { return(TypeSerializer.HasCircularReferences(obj) ? obj.ToSafePartialObjectDictionary().ToJson() : obj.ToJson()); }
public static T FromJsv <T>(this string jsv) { return(TypeSerializer.DeserializeFromString <T>(jsv)); }
public void Test_Poco() { var serializer = new TypeSerializer(new ManualByteConverter()); var value = new Person {Name = "jeff"}; var bytes = serializer.Serialize(value); var actual = serializer.Deserialize<Person>(new ArraySegment<byte>(bytes), 0, bytes.Length); Assert.AreEqual(value.Name, actual.Name); }
public void Can_serializer_UserPublicView() { var dto = TypeSerializer.DeserializeFromString <UserPublicView>(UserViewString); Serialize(dto); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } CommandResponse = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[1], false, seps) : null; DateTimeCompleted = segments.Length > 2 && segments[2].Length > 0 ? segments[2].ToNullableDateTime() : null; CommandResponseParameters = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } ItemIdentifier = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[1], false, seps) : null; ItemDescription = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; ItemStatus = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; ItemType = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[4], false, seps) : null; ItemCategory = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[5], false, seps) : null; SubjectToExpirationIndicator = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[6], false, seps) : null; ManufacturerIdentifier = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[7], false, seps) : null; ManufacturerName = segments.Length > 8 && segments[8].Length > 0 ? segments[8] : null; ManufacturerCatalogNumber = segments.Length > 9 && segments[9].Length > 0 ? segments[9] : null; ManufacturerLabelerIdentificationCode = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[10], false, seps) : null; PatientChargeableIndicator = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[11], false, seps) : null; TransactionCode = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[12], false, seps) : null; TransactionAmountUnit = segments.Length > 13 && segments[13].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[13], false, seps) : null; StockedItemIndicator = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[14], false, seps) : null; SupplyRiskCodes = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[15], false, seps) : null; ApprovingRegulatoryAgency = segments.Length > 16 && segments[16].Length > 0 ? segments[16].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(x, false, seps)) : null; LatexIndicator = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[17], false, seps) : null; RulingAct = segments.Length > 18 && segments[18].Length > 0 ? segments[18].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; ItemNaturalAccountCode = segments.Length > 19 && segments[19].Length > 0 ? segments[19] : null; ApprovedToBuyQuantity = segments.Length > 20 && segments[20].Length > 0 ? segments[20].ToNullableDecimal() : null; ApprovedToBuyPrice = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <Money>(segments[21], false, seps) : null; TaxableItemIndicator = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[22], false, seps) : null; FreightChargeIndicator = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[23], false, seps) : null; ItemSetIndicator = segments.Length > 24 && segments[24].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[24], false, seps) : null; ItemSetIdentifier = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[25], false, seps) : null; TrackDepartmentUsageIndicator = segments.Length > 26 && segments[26].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[26], false, seps) : null; ProcedureCode = segments.Length > 27 && segments[27].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[27], false, seps) : null; ProcedureCodeModifier = segments.Length > 28 && segments[28].Length > 0 ? segments[28].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithNoExceptions>(x, false, seps)) : null; SpecialHandlingCode = segments.Length > 29 && segments[29].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[29], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } ProviderProductServiceSectionNumber = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[1], false, seps) : null; PayerProductServiceSectionNumber = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[2], false, seps) : null; ProductServiceSectionSequenceNumber = segments.Length > 3 && segments[3].Length > 0 ? segments[3].ToNullableUInt() : null; BilledAmount = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[4], false, seps) : null; SectionDescriptionOrHeading = segments.Length > 5 && segments[5].Length > 0 ? segments[5] : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SetIdSpm = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; SpecimenId = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifierPair>(segments[2], false, seps) : null; SpecimenParentIds = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <EntityIdentifierPair>(x, false, seps)) : null; SpecimenType = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[4], false, seps) : null; SpecimenTypeModifier = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenAdditives = segments.Length > 6 && segments[6].Length > 0 ? segments[6].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenCollectionMethod = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[7], false, seps) : null; SpecimenSourceSite = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[8], false, seps) : null; SpecimenSourceSiteModifier = segments.Length > 9 && segments[9].Length > 0 ? segments[9].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenCollectionSite = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[10], false, seps) : null; SpecimenRole = segments.Length > 11 && segments[11].Length > 0 ? segments[11].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenCollectionAmount = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[12], false, seps) : null; GroupedSpecimenCount = segments.Length > 13 && segments[13].Length > 0 ? segments[13].ToNullableDecimal() : null; SpecimenDescription = segments.Length > 14 && segments[14].Length > 0 ? segments[14].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; SpecimenHandlingCode = segments.Length > 15 && segments[15].Length > 0 ? segments[15].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenRiskCode = segments.Length > 16 && segments[16].Length > 0 ? segments[16].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenCollectionDateTime = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <DateTimeRange>(segments[17], false, seps) : null; SpecimenReceivedDateTime = segments.Length > 18 && segments[18].Length > 0 ? segments[18].ToNullableDateTime() : null; SpecimenExpirationDateTime = segments.Length > 19 && segments[19].Length > 0 ? segments[19].ToNullableDateTime() : null; SpecimenAvailability = segments.Length > 20 && segments[20].Length > 0 ? segments[20] : null; SpecimenRejectReason = segments.Length > 21 && segments[21].Length > 0 ? segments[21].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenQuality = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[22], false, seps) : null; SpecimenAppropriateness = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[23], false, seps) : null; SpecimenCondition = segments.Length > 24 && segments[24].Length > 0 ? segments[24].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenCurrentQuantity = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[25], false, seps) : null; NumberOfSpecimenContainers = segments.Length > 26 && segments[26].Length > 0 ? segments[26].ToNullableDecimal() : null; ContainerType = segments.Length > 27 && segments[27].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[27], false, seps) : null; ContainerCondition = segments.Length > 28 && segments[28].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[28], false, seps) : null; SpecimenChildRole = segments.Length > 29 && segments[29].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[29], false, seps) : null; AccessionId = segments.Length > 30 && segments[30].Length > 0 ? segments[30].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null; OtherSpecimenId = segments.Length > 31 && segments[31].Length > 0 ? segments[31].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null; ShipmentId = segments.Length > 32 && segments[32].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[32], false, seps) : null; }
public static object To(this string value, Type type) { return(TypeSerializer.DeserializeFromString(value, type)); }
public static T ToOrDefaultValue <T>(this string value) { return(String.IsNullOrEmpty(value) ? default(T) : TypeSerializer.DeserializeFromString <T>(value)); }
public void Test_Null() { var serializer = new TypeSerializer(new ManualByteConverter()); var expected = new byte[0]; var actual = serializer.Serialize<string>(null); Assert.AreEqual(expected, actual); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SequenceNumberTestObservationMasterFile = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableDecimal() : null; ProducersServiceTestObservationId = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[2], false, seps) : null; PermittedDataTypes = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; SpecimenRequired = segments.Length > 4 && segments[4].Length > 0 ? segments[4] : null; ProducerId = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[5], false, seps) : null; ObservationDescription = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[6], false, seps) : null; OtherServiceTestObservationIdsForTheObservation = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[7], false, seps) : null; OtherNames = segments.Length > 8 && segments[8].Length > 0 ? segments[8].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; PreferredReportNameForTheObservation = segments.Length > 9 && segments[9].Length > 0 ? segments[9] : null; PreferredShortNameOrMnemonicForTheObservation = segments.Length > 10 && segments[10].Length > 0 ? segments[10] : null; PreferredLongNameForTheObservation = segments.Length > 11 && segments[11].Length > 0 ? segments[11] : null; Orderability = segments.Length > 12 && segments[12].Length > 0 ? segments[12] : null; IdentityOfInstrumentUsedToPerformThisStudy = segments.Length > 13 && segments[13].Length > 0 ? segments[13].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; CodedRepresentationOfMethod = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[14], false, seps) : null; PortableDeviceIndicator = segments.Length > 15 && segments[15].Length > 0 ? segments[15] : null; ObservationProducingDepartmentSection = segments.Length > 16 && segments[16].Length > 0 ? segments[16].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; TelephoneNumberOfSection = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[17], false, seps) : null; NatureOfServiceTestObservation = segments.Length > 18 && segments[18].Length > 0 ? segments[18] : null; ReportSubheader = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[19], false, seps) : null; ReportDisplayOrder = segments.Length > 20 && segments[20].Length > 0 ? segments[20] : null; DateTimeStampForAnyChangeInDefinitionForTheObservation = segments.Length > 21 && segments[21].Length > 0 ? segments[21].ToNullableDateTime() : null; EffectiveDateTimeOfChange = segments.Length > 22 && segments[22].Length > 0 ? segments[22].ToNullableDateTime() : null; TypicalTurnAroundTime = segments.Length > 23 && segments[23].Length > 0 ? segments[23].ToNullableDecimal() : null; ProcessingTime = segments.Length > 24 && segments[24].Length > 0 ? segments[24].ToNullableDecimal() : null; ProcessingPriority = segments.Length > 25 && segments[25].Length > 0 ? segments[25].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; ReportingPriority = segments.Length > 26 && segments[26].Length > 0 ? segments[26] : null; OutsideSitesWhereObservationMayBePerformed = segments.Length > 27 && segments[27].Length > 0 ? segments[27].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; AddressOfOutsideSites = segments.Length > 28 && segments[28].Length > 0 ? TypeSerializer.Deserialize <ExtendedAddress>(segments[28], false, seps) : null; PhoneNumberOfOutsideSite = segments.Length > 29 && segments[29].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[29], false, seps) : null; ConfidentialityCode = segments.Length > 30 && segments[30].Length > 0 ? segments[30] : null; ObservationsRequiredToInterpretThisObservation = segments.Length > 31 && segments[31].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[31], false, seps) : null; InterpretationOfObservations = segments.Length > 32 && segments[32].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[32], false, seps) : null; ContraindicationsToObservations = segments.Length > 33 && segments[33].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[33], false, seps) : null; ReflexTestsObservations = segments.Length > 34 && segments[34].Length > 0 ? segments[34].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; RulesThatTriggerReflexTesting = segments.Length > 35 && segments[35].Length > 0 ? segments[35] : null; FixedCannedMessage = segments.Length > 36 && segments[36].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[36], false, seps) : null; PatientPreparation = segments.Length > 37 && segments[37].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[37], false, seps) : null; ProcedureMedication = segments.Length > 38 && segments[38].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[38], false, seps) : null; FactorsThatMayAffectTheObservation = segments.Length > 39 && segments[39].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[39], false, seps) : null; ServiceTestObservationPerformanceSchedule = segments.Length > 40 && segments[40].Length > 0 ? segments[40].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; DescriptionOfTestMethods = segments.Length > 41 && segments[41].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[41], false, seps) : null; KindOfQuantityObserved = segments.Length > 42 && segments[42].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[42], false, seps) : null; PointVersusInterval = segments.Length > 43 && segments[43].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[43], false, seps) : null; ChallengeInformation = segments.Length > 44 && segments[44].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[44], false, seps) : null; RelationshipModifier = segments.Length > 45 && segments[45].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[45], false, seps) : null; TargetAnatomicSiteOfTest = segments.Length > 46 && segments[46].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[46], false, seps) : null; ModalityOfImagingMeasurement = segments.Length > 47 && segments[47].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[47], false, seps) : null; }
public void Test_Deserialize_Null() { var serializer = new TypeSerializer(new ManualByteConverter()); object value = null; var bytes = serializer.SerializeAsJson(value); var actual = serializer.Deserialize<object>(bytes, 0, bytes.Length); Assert.AreEqual(value, actual); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SequenceNumberTestObservationMasterFile = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableDecimal() : null; PreferredCodingSystem = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[2], false, seps) : null; ValidCodedAnswers = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[3], false, seps) : null; NormalTextCodesForCategoricalObservations = segments.Length > 4 && segments[4].Length > 0 ? segments[4].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; AbnormalTextCodesForCategoricalObservations = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; CriticalTextCodesForCategoricalObservations = segments.Length > 6 && segments[6].Length > 0 ? segments[6].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; ValueType = segments.Length > 7 && segments[7].Length > 0 ? segments[7] : null; }
private void Load(Stream stream) { //var reader = new SoapFormatter(); var reader = new TypeSerializer<SystemConfig>(); var streamReader = new StreamReader(stream); SystemConfig config = reader.DeserializeFromReader(streamReader); var mapper = EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper<SystemConfig, SystemConfig>(); mapper.Map(config, this); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } ExternalAccessionIdentifier = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[1], false, seps) : null; AccessionIdentifier = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[2], false, seps) : null; ContainerIdentifier = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[3], false, seps) : null; PrimaryParentContainerIdentifier = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[4], false, seps) : null; EquipmentContainerIdentifier = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[5], false, seps) : null; SpecimenSource = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <SpecimenSource>(segments[6], false, seps) : null; RegistrationDateTime = segments.Length > 7 && segments[7].Length > 0 ? segments[7].ToNullableDateTime() : null; ContainerStatus = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[8], false, seps) : null; CarrierType = segments.Length > 9 && segments[9].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[9], false, seps) : null; CarrierIdentifier = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[10], false, seps) : null; PositionInCarrier = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <NumericArray>(segments[11], false, seps) : null; TrayTypeSac = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[12], false, seps) : null; TrayIdentifier = segments.Length > 13 && segments[13].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[13], false, seps) : null; PositionInTray = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <NumericArray>(segments[14], false, seps) : null; Location = segments.Length > 15 && segments[15].Length > 0 ? segments[15].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; ContainerHeight = segments.Length > 16 && segments[16].Length > 0 ? segments[16].ToNullableDecimal() : null; ContainerDiameter = segments.Length > 17 && segments[17].Length > 0 ? segments[17].ToNullableDecimal() : null; BarrierDelta = segments.Length > 18 && segments[18].Length > 0 ? segments[18].ToNullableDecimal() : null; BottomDelta = segments.Length > 19 && segments[19].Length > 0 ? segments[19].ToNullableDecimal() : null; ContainerHeightDiameterDeltaUnits = segments.Length > 20 && segments[20].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[20], false, seps) : null; ContainerVolume = segments.Length > 21 && segments[21].Length > 0 ? segments[21].ToNullableDecimal() : null; AvailableSpecimenVolume = segments.Length > 22 && segments[22].Length > 0 ? segments[22].ToNullableDecimal() : null; InitialSpecimenVolume = segments.Length > 23 && segments[23].Length > 0 ? segments[23].ToNullableDecimal() : null; VolumeUnits = segments.Length > 24 && segments[24].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[24], false, seps) : null; SeparatorType = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[25], false, seps) : null; CapType = segments.Length > 26 && segments[26].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[26], false, seps) : null; Additive = segments.Length > 27 && segments[27].Length > 0 ? segments[27].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SpecimenComponent = segments.Length > 28 && segments[28].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[28], false, seps) : null; DilutionFactor = segments.Length > 29 && segments[29].Length > 0 ? TypeSerializer.Deserialize <StructuredNumeric>(segments[29], false, seps) : null; Treatment = segments.Length > 30 && segments[30].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[30], false, seps) : null; Temperature = segments.Length > 31 && segments[31].Length > 0 ? TypeSerializer.Deserialize <StructuredNumeric>(segments[31], false, seps) : null; HemolysisIndex = segments.Length > 32 && segments[32].Length > 0 ? segments[32].ToNullableDecimal() : null; HemolysisIndexUnits = segments.Length > 33 && segments[33].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[33], false, seps) : null; LipemiaIndex = segments.Length > 34 && segments[34].Length > 0 ? segments[34].ToNullableDecimal() : null; LipemiaIndexUnits = segments.Length > 35 && segments[35].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[35], false, seps) : null; IcterusIndex = segments.Length > 36 && segments[36].Length > 0 ? segments[36].ToNullableDecimal() : null; IcterusIndexUnits = segments.Length > 37 && segments[37].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[37], false, seps) : null; FibrinIndex = segments.Length > 38 && segments[38].Length > 0 ? segments[38].ToNullableDecimal() : null; FibrinIndexUnits = segments.Length > 39 && segments[39].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[39], false, seps) : null; SystemInducedContaminants = segments.Length > 40 && segments[40].Length > 0 ? segments[40].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; DrugInterference = segments.Length > 41 && segments[41].Length > 0 ? segments[41].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; ArtificialBlood = segments.Length > 42 && segments[42].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[42], false, seps) : null; SpecialHandlingCode = segments.Length > 43 && segments[43].Length > 0 ? segments[43].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; OtherEnvironmentalFactors = segments.Length > 44 && segments[44].Length > 0 ? segments[44].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; }
public static T FromJsvSpan <T>(this ReadOnlySpan <char> jsv) { return(TypeSerializer.DeserializeFromSpan <T>(jsv)); }
/// <summary>Populates.</summary> /// /// <param name="to"> to.</param> /// <param name="from"> Source for the.</param> /// <param name="propertyInfoPredicate">The property information predicate.</param> /// <param name="valuePredicate"> The value predicate.</param> public void Populate(object to, object from, Func <PropertyInfo, bool> propertyInfoPredicate, Func <object, Type, bool> valuePredicate) { foreach (var assignmentEntry in AssignmentMemberMap) { var assignmentMember = assignmentEntry.Value; var fromMember = assignmentEntry.Value.From; var toMember = assignmentEntry.Value.To; if (fromMember.PropertyInfo != null && propertyInfoPredicate != null) { if (!propertyInfoPredicate(fromMember.PropertyInfo)) { continue; } } try { var fromValue = assignmentMember.GetValueFn(from); if (valuePredicate != null) { if (!valuePredicate(fromValue, fromMember.PropertyInfo.PropertyType)) { continue; } } if (fromMember.Type != toMember.Type) { if (fromMember.Type == typeof(string)) { fromValue = TypeSerializer.DeserializeFromString((string)fromValue, toMember.Type); } else if (toMember.Type == typeof(string)) { fromValue = TypeSerializer.SerializeToString(fromValue); } else if (toMember.Type.IsGeneric() && toMember.Type.GenericTypeDefinition() == typeof(Nullable <>)) { Type genericArg = toMember.Type.GenericTypeArguments()[0]; if (genericArg.IsEnum()) { fromValue = Enum.ToObject(genericArg, fromValue); } } else { var listResult = TranslateListWithElements.TryTranslateToGenericICollection( fromMember.Type, toMember.Type, fromValue); if (listResult != null) { fromValue = listResult; } } } var setterFn = assignmentMember.SetValueFn; setterFn(to, fromValue); } catch (Exception ex) { Log.Warn(string.Format("Error trying to set properties {0}.{1} > {2}.{3}", FromType.FullName, fromMember.Type.Name, ToType.FullName, toMember.Type.Name), ex); } } }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } TrayType = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[1], false, seps) : null; ServicePeriod = segments.Length > 2 && segments[2].Length > 0 ? segments[2].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; TextInstruction = segments.Length > 3 && segments[3].Length > 0 ? segments[3] : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } StudyScheduledTimePoint = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[1], false, seps) : null; StudyScheduledPatientTimePoint = segments.Length > 2 && segments[2].Length > 0 ? segments[2].ToNullableDateTime() : null; StudyQualityControlCodes = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; }
/// <summary> /// Gets the argument value. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="index">The index.</param> /// <returns>T.</returns> public T GetArgumentValue <T>(int index) { return(TypeSerializer.DeserializeFromString <T>(this.Arguments[index])); }
public void TestSqlServerDateTime() { var result = TypeSerializer.DeserializeFromString <DateTime>("2010-06-01 21:52:59.280"); Assert.That(result, Is.Not.Null); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } AllergyReactionCode = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[1], false, seps) : null; AllergySeverityCode = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[2], false, seps) : null; SensitivityToCausativeAgentCode = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; Management = segments.Length > 4 && segments[4].Length > 0 ? segments[4] : null; }
public void DateTime_Is_Serialized_As_Utc_and_Deserialized_as_local() { var testObject = new TestObject { Date = new DateTime(2013, 1, 1, 0, 0, 1, DateTimeKind.Utc) }; Assert.AreEqual(DateTimeKind.Local, TypeSerializer.DeserializeFromString <TestObject>(TypeSerializer.SerializeToString <TestObject>(testObject)).Date.Kind); //Can change default behavior with config using (JsConfig.With(alwaysUseUtc: true)) { Assert.AreEqual(DateTimeKind.Utc, TypeSerializer.DeserializeFromString <TestObject>(TypeSerializer.SerializeToString <TestObject>(testObject)).Date.Kind); } testObject = new TestObject { Date = new DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc) }; Assert.AreEqual(DateTimeKind.Local, TypeSerializer.DeserializeFromString <TestObject>(TypeSerializer.SerializeToString <TestObject>(testObject)).Date.Kind); //Can change default behavior with config using (JsConfig.With(alwaysUseUtc: true)) { Assert.AreEqual(DateTimeKind.Utc, TypeSerializer.DeserializeFromString <TestObject>(TypeSerializer.SerializeToString <TestObject>(testObject)).Date.Kind); } }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } PlacerAppointmentId = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[1], false, seps) : null; FillerAppointmentId = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[2], false, seps) : null; OccurrenceNumber = segments.Length > 3 && segments[3].Length > 0 ? segments[3].ToNullableDecimal() : null; PlacerGroupNumber = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[4], false, seps) : null; ScheduleId = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[5], false, seps) : null; RequestEventReason = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[6], false, seps) : null; AppointmentReason = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[7], false, seps) : null; AppointmentType = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[8], false, seps) : null; AppointmentDuration = segments.Length > 9 && segments[9].Length > 0 ? segments[9].ToNullableDecimal() : null; AppointmentDurationUnits = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[10], false, seps) : null; RequestedStartDateTimeRange = segments.Length > 11 && segments[11].Length > 0 ? segments[11].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <DateTimeRange>(x, false, seps)) : null; PriorityArq = segments.Length > 12 && segments[12].Length > 0 ? segments[12] : null; RepeatingInterval = segments.Length > 13 && segments[13].Length > 0 ? TypeSerializer.Deserialize <RepeatInterval>(segments[13], false, seps) : null; RepeatingIntervalDuration = segments.Length > 14 && segments[14].Length > 0 ? segments[14] : null; PlacerContactPerson = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[15], false, seps) : null; PlacerContactPhoneNumber = segments.Length > 16 && segments[16].Length > 0 ? segments[16].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null; PlacerContactAddress = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <ExtendedAddress>(segments[17], false, seps) : null; PlacerContactLocation = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[18], false, seps) : null; EnteredByPerson = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[19], false, seps) : null; EnteredByPhoneNumber = segments.Length > 20 && segments[20].Length > 0 ? segments[20].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null; EnteredByLocation = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[21], false, seps) : null; ParentPlacerAppointmentId = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[22], false, seps) : null; ParentFillerAppointmentId = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[23], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] separator = IsSubcomponent ? seps.SubcomponentSeparator : seps.ComponentSeparator; string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(separator, StringSplitOptions.None); VersionId = segments.Length > 0 && segments[0].Length > 0 ? segments[0] : null; InternationalizationCode = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[1], true, seps) : null; InternationalVersionId = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[2], true, seps) : null; }
public void Populate(object to, object from, Func <PropertyInfo, bool> propertyInfoPredicate, Func <object, bool> valuePredicate) { foreach (var propertyEntry in PropertyInfoMap) { var fromPropertyInfo = propertyEntry.Key; var toPropertyInfo = propertyEntry.Value; if (propertyInfoPredicate != null) { if (!propertyInfoPredicate(fromPropertyInfo)) { continue; } } try { var getterFn = PropertyGetters.GetOrAdd(fromPropertyInfo.Name, fromPropertyInfo.GetPropertyGetterFn()); var fromValue = getterFn(from); if (valuePredicate != null) { if (!valuePredicate(fromValue)) { continue; } } if (fromPropertyInfo.PropertyType != toPropertyInfo.PropertyType) { if (fromPropertyInfo.PropertyType == typeof(string)) { fromValue = TypeSerializer.DeserializeFromString((string)fromValue, toPropertyInfo.PropertyType); } else if (toPropertyInfo.PropertyType == typeof(string)) { fromValue = TypeSerializer.SerializeToString(fromValue); } else if (toPropertyInfo.PropertyType.IsGenericType && toPropertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(Nullable <>)) { Type genericArg = toPropertyInfo.PropertyType.GetGenericArguments()[0]; if (genericArg.IsEnum) { fromValue = Enum.ToObject(genericArg, fromValue); } } else { var listResult = TranslateListWithElements.TryTranslateToGenericICollection( fromPropertyInfo.PropertyType, toPropertyInfo.PropertyType, fromValue); if (listResult != null) { fromValue = listResult; } } } var setterFn = PropertySetters.GetOrAdd(toPropertyInfo.Name, toPropertyInfo.GetPropertySetterFn()); setterFn(to, fromValue); } catch (Exception ex) { Log.Warn(string.Format("Error trying to set properties {0}.{1} > {2}.{3}", FromType.FullName, fromPropertyInfo.Name, ToType.FullName, toPropertyInfo.Name), ex); } } foreach (var fieldEntry in FieldInfoMap) { var fromFieldInfo = fieldEntry.Key; var toFieldInfo = fieldEntry.Value; try { var fromValue = fromFieldInfo.GetValue(from); toFieldInfo.SetValue(to, fromValue); } catch (Exception ex) { Log.Warn(string.Format("Error trying to set fields {0}.{1} > {2}.{3}", FromType.FullName, fromFieldInfo.Name, ToType.FullName, toFieldInfo.Name), ex); } } }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SequenceNumberTestObservationMasterFile = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableDecimal() : null; UniversalServiceIdentifier = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[2], false, seps) : null; CategoryIdentifier = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; CategoryDescription = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[4], false, seps) : null; CategorySynonym = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; EffectiveTestServiceStartDateTime = segments.Length > 6 && segments[6].Length > 0 ? segments[6].ToNullableDateTime() : null; EffectiveTestServiceEndDateTime = segments.Length > 7 && segments[7].Length > 0 ? segments[7].ToNullableDateTime() : null; TestServiceDefaultDurationQuantity = segments.Length > 8 && segments[8].Length > 0 ? segments[8].ToNullableDecimal() : null; TestServiceDefaultDurationUnits = segments.Length > 9 && segments[9].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[9], false, seps) : null; TestServiceDefaultFrequency = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[10], false, seps) : null; ConsentIndicator = segments.Length > 11 && segments[11].Length > 0 ? segments[11] : null; ConsentIdentifier = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[12], false, seps) : null; ConsentEffectiveStartDateTime = segments.Length > 13 && segments[13].Length > 0 ? segments[13].ToNullableDateTime() : null; ConsentEffectiveEndDateTime = segments.Length > 14 && segments[14].Length > 0 ? segments[14].ToNullableDateTime() : null; ConsentIntervalQuantity = segments.Length > 15 && segments[15].Length > 0 ? segments[15].ToNullableDecimal() : null; ConsentIntervalUnits = segments.Length > 16 && segments[16].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[16], false, seps) : null; ConsentWaitingPeriodQuantity = segments.Length > 17 && segments[17].Length > 0 ? segments[17].ToNullableDecimal() : null; ConsentWaitingPeriodUnits = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[18], false, seps) : null; EffectiveDateTimeOfChange = segments.Length > 19 && segments[19].Length > 0 ? segments[19].ToNullableDateTime() : null; EnteredBy = segments.Length > 20 && segments[20].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[20], false, seps) : null; OrderableAtLocation = segments.Length > 21 && segments[21].Length > 0 ? segments[21].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <PersonLocation>(x, false, seps)) : null; FormularyStatus = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[22], false, seps) : null; SpecialOrderIndicator = segments.Length > 23 && segments[23].Length > 0 ? segments[23] : null; PrimaryKeyValueCdm = segments.Length > 24 && segments[24].Length > 0 ? segments[24].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; }
public void Test_Char() { var serializer = new TypeSerializer(new ManualByteConverter()); var value = 'o'; var expected = new byte[] { 0x6f }; var actual = serializer.Serialize(value); Assert.AreEqual(expected, actual); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } ActionCode = segments.Length > 1 && segments[1].Length > 0 ? segments[1] : null; ActionDateTime = segments.Length > 2 && segments[2].Length > 0 ? segments[2].ToNullableDateTime() : null; GoalId = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; GoalInstanceId = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[4], false, seps) : null; EpisodeOfCareId = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[5], false, seps) : null; GoalListPriority = segments.Length > 6 && segments[6].Length > 0 ? segments[6].ToNullableDecimal() : null; GoalEstablishedDateTime = segments.Length > 7 && segments[7].Length > 0 ? segments[7].ToNullableDateTime() : null; ExpectedGoalAchieveDateTime = segments.Length > 8 && segments[8].Length > 0 ? segments[8].ToNullableDateTime() : null; GoalClassification = segments.Length > 9 && segments[9].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[9], false, seps) : null; GoalManagementDiscipline = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[10], false, seps) : null; CurrentGoalReviewStatus = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[11], false, seps) : null; CurrentGoalReviewDateTime = segments.Length > 12 && segments[12].Length > 0 ? segments[12].ToNullableDateTime() : null; NextGoalReviewDateTime = segments.Length > 13 && segments[13].Length > 0 ? segments[13].ToNullableDateTime() : null; PreviousGoalReviewDateTime = segments.Length > 14 && segments[14].Length > 0 ? segments[14].ToNullableDateTime() : null; GoalReviewInterval = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <TimingQuantity>(segments[15], false, seps) : null; GoalEvaluation = segments.Length > 16 && segments[16].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[16], false, seps) : null; GoalEvaluationComment = segments.Length > 17 && segments[17].Length > 0 ? segments[17].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; GoalLifeCycleStatus = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[18], false, seps) : null; GoalLifeCycleStatusDateTime = segments.Length > 19 && segments[19].Length > 0 ? segments[19].ToNullableDateTime() : null; GoalTargetType = segments.Length > 20 && segments[20].Length > 0 ? segments[20].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; GoalTargetName = segments.Length > 21 && segments[21].Length > 0 ? segments[21].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null; MoodCode = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[22], false, seps) : null; }
public void Test_Deserialize_Int() { var serializer = new TypeSerializer(new ManualByteConverter()); var five = 5; var bytes = serializer.Serialize(five); var actual = serializer.Deserialize<int>(bytes, 0, bytes.Length); Assert.AreEqual(five, actual); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } PriorPatientIdentifierList = segments.Length > 1 && segments[1].Length > 0 ? segments[1].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null; PriorAlternatePatientId = segments.Length > 2 && segments[2].Length > 0 ? segments[2].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null; PriorPatientAccountNumber = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[3], false, seps) : null; PriorPatientId = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[4], false, seps) : null; PriorVisitNumber = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[5], false, seps) : null; PriorAlternateVisitId = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[6], false, seps) : null; PriorPatientName = segments.Length > 7 && segments[7].Length > 0 ? segments[7].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null; }
public void Test_Deserialize_String() { var serializer = new TypeSerializer(new ManualByteConverter()); var value = "astring"; var bytes = serializer.Serialize(value); var bytes1 = Encoding.UTF8.GetBytes(value); var actual = serializer.Deserialize<string>(bytes, 0, bytes.Length); Assert.AreEqual(value, actual); }
public static string ToJsv <T>(this T obj) { return(TypeSerializer.SerializeToString(obj)); }
public void Test_Serialize_String() { var serializer = new TypeSerializer(new ManualByteConverter()); string data = "Hello"; var expected = new byte[] { 0x48, 0x65, 0x6c, 0x6c, 0x6f }; var actual = serializer.Serialize(data); Assert.AreEqual(expected, actual); }
/// <summary> /// /// </summary> public void Save() { Stream stream = File.Open(CONFIG_FILE_NAME, FileMode.Create); var writer = new TypeSerializer<SystemConfig>(); var streamWriter = new StreamWriter(stream); writer.SerializeToWriter(this, streamWriter); streamWriter.Close(); //var writer = new SoapFormatter(); //streamWriter.Flush(); /*stream.Flush(); stream.Close();*/ }