private void ConfigureParty(ConverterConfigurator <InnerDocument, InnerDocument, SecondContractDocument <SecondContractDocumentBody>, SG2, SG2> configurator, Expression <Func <InnerDocument, PartyInfo> > pathToParty, string functionCodeQualifier, TestConverterContext context) { SecondContractConvertingHelpers.ConfigureIdentifiers(configurator.GoTo(sg3 => sg3.NameAndAddress, pathToParty), functionCodeQualifier); SecondContractConvertingHelpers.ConfigureReferences(configurator.GoTo(sg3 => sg3.References, pathToParty)); SecondContractConvertingHelpers.ConfigureNameAndAddress(configurator.GoTo(sg3 => sg3.NameAndAddress, pathToParty), context, defaultConverter); SecondContractConvertingHelpers.ConfigureFinancialInstitutionInformation(configurator.GoTo(sg3 => sg3.FinancialInstitutionInformation, pathToParty)); }
private void Configure(ConverterConfigurator <InnerDocument, InnerDocument, SecondContractDocument <SecondContractDocumentBody>, SecondContractDocumentBody, SecondContractDocumentBody> configurator, TestConverterContext context) { configurator.Target(message => message.BeginningOfMessage.DocumentMessageIdentification.DocumentIdentifier).Set(data => data.OrdersNumber); configurator.Target(message => message.DateTimePeriod[0]) .Set(data => data.OrdersDate, dateTime => StaticDateTimePeriodConverter.ToDateTimePeriod(dateTime, "137", "203")); var referencesConfigurator = configurator.GoTo(message => message.References.Each(), data => SecondContractConvertingHelpers.GetReferencesArray(data).Current()); referencesConfigurator.SetReferenceWithDatesArray(data => data.Code, data => data.Number, data => data.Date); ConfigureParty(configurator.GoTo(message => message.PartiesArray[0]), data => data.Supplier, "SU", context); ConfigureParty(configurator.GoTo(message => message.PartiesArray[1]), data => data.Buyer, "BY", context); ConfigureGoodItems(configurator.GoTo(message => message.SG28.Each(), data => data.GoodItems.Current())); configurator.GoTo(message => message.SG13[0], data => data.Packages[0]) .Target(sg13 => sg13.Package.PackageType.PackageTypeDescriptionCode) .Set(package => defaultConverter.Convert(package.PackageQuantity.TypeOfPackage)); configurator.Target(message => message.ControlTotal[0].Control.ControlTotalValue) .Set(data => decimalConverter.ToString(data.GoodItems.Aggregate <CommonGoodItem, decimal>(0, (current, item) => current + (item.Quantity.Value ?? 0)))); }