public static void ConfigureParty <TSecondContract, TData, TSG2, TSG3, TSG5>(this ConverterConfigurator <TSecondContract, TSG2, TData, PartyInfo, PartyInfo> configurator) where TSG5 : IContactContainer where TSG2 : IReferenceArrayContainer <TSG3>, IContactInformationArrayContainer <TSG5>, INameAndAddressContainer, IFiiArrayContainer where TSG3 : IReferenceContainer { configurator.ConfigureIdentifiers <TSecondContract, TData, TSG2, TSG3, PartyInfo>(); configurator.GoTo(info => info.Chief, sg2 => sg2.ContactInformationArray) .ConfigureContact("MGR"); configurator.GoTo(info => info, sg2 => sg2.FinancialInstitutionInformation) .ConfigureBankInformation(); configurator.ConfigureRussianPartyInfo <TSecondContract, TData, TSG2, TSG3, PartyInfo>(); configurator.GoTo(info => info, sg2 => sg2.NameAndAddress) .ConfigurePartyAddress(); }